Loading…
Attending this event?
Open Content clear filter
Monday, September 16
 

12:30 MDT

Bitcoin: History and Use Cases
Monday September 16, 2024 12:30 - 13:30 MDT
Jon will share the Bitcoin “origin story,” which is the story of the Cypherpunks and the solution to the Byzantine Generals Problem. He will discuss several real-world problems that the Cypherpunks solved using cryptography, leading up to the development of Bitcoin.

Jon will also cover the three most important use cases of the Bitcoin protocol. The first two use cases, Store of Value and Medium of Exchange, are well-known, but have other, non-Bitcoin solutions. The third use case, Native Internet Money, has a unique solution of great interest to software engineers, particularly in the age of AI.



In Eduardo Madrid’s presentation, Bitcoin: From the White Paper to the World's Reserve Currency, scheduled for Tuesday, he will outline the implementation of the Bitcoin protocol based on the Bitcoin White Paper, focusing on how programmable money is possible.

In Kris Jusiak’s presentation, Bitcoin Script: Implementation Details and Use Cases, scheduled for Wednesday, he will present the details which make programmable money possible.

In Eduardo Madrid’s presentation, Role Playing Bitcoin Protocols Including the Lightning Network, scheduled for Thursday, with just an intuitive understanding of Bitcoin Script he will describe the higher abstraction level protocols, such as the Lightning Network.

Join us on Friday for a panel in which Eduardo, Jon, and Kris will answer Bitcoin questions
Speakers
avatar for Jon Kalb

Jon Kalb

CppCon, Conference Chair, Jon Kalb, Consulting
Jon Kalb is using his decades of software engineering experience and knowledge about C++ to make other people better software engineers. He trains experienced software engineers to be better programmers. He presents at and helps run technical conferences and local user groups.He is... Read More →
Monday September 16, 2024 12:30 - 13:30 MDT
Spruce 3/4

12:30 MDT

Cpp2/cppfront BoF informal meetup
Monday September 16, 2024 12:30 - 13:30 MDT
This session is an informal “BoF + show-and-tell” meetup for people interested in Cpp2/cppfront.
Here are some ideas:
- Do you have a pull request you're working on? Show it off and get feedback
- Chat in person about some of the GitHub cppfront Discussion topics
- Other related topics welcome!
- Last year Herb used this meeting as a chance to run some informal polls
Speakers
avatar for Neil Henderson

Neil Henderson

Software Developer, Blue Tarp Media
Monday September 16, 2024 12:30 - 13:30 MDT
Cottonwood 8/9

12:30 MDT

The Power of Reducing Variable Scope
Monday September 16, 2024 12:30 - 13:30 MDT
Perhaps you've heard that you should reduce variable scope. But have you ever really stopped to think about why? In this session we'll run through a manufactured example that illustrates the difference reducing variable scope can make, and we'll do some examination as to what difference it made with the compiler.
Speakers
avatar for Jason Turner

Jason Turner

Sole Proprietor, Jason Turner
Jason is host of the YouTube channel C++Weekly, co-host emeritus of the podcast CppCast, author of C++ Best Practices, and author of the first casual puzzle books designed to teach C++ fundamentals while having fun!
Monday September 16, 2024 12:30 - 13:30 MDT
Cottonwood 2/3

20:30 MDT

"Pick a random number... no, not that one!" - Tales of Real-World Exploits Based on Bad Randomness
Monday September 16, 2024 20:30 - 21:30 MDT
When it comes to security, using "good" randomness is key - at least so we are told. But unlike using an insecure protocol or a weak cryptographic key, it may not be intuitive why "bad" randomness may be a problem. What even makes randomness "good" or "bad"?

In this session we will explore several real-world exploits based on bad randomness including online poker, cryptocurrencies, cars, web-traffic encryption, and video games.
Don't worry, no security background knowledge needed.

In the end, you will have entertaining stories to share and a better and more intuitive understanding of the dangers of "bad" randomness.
Speakers
avatar for Max Hoffmann

Max Hoffmann

Security Manager, ETAS
Max Hoffmann studied cybersecurity and got his Ph.D. in hardware security at the Ruhr University Bochum, Germany, in association with the Max Planck Institute for Security and Privacy at the research group of Professor Christof Paar. With a passion for teaching, he continues to contribute... Read More →
Monday September 16, 2024 20:30 - 21:30 MDT
Cottonwood 2/3
 
Tuesday, September 17
 

12:30 MDT

Another Grab-bag of Oddments
Tuesday September 17, 2024 12:30 - 13:30 MDT
Play is FUNdamental. This session looks at some more odd corners of C++ where we try to do out-of-the-ordinary things just to see what's possible. Should we do these things in production code? Maybe not today, but in the future, who knows? 20-odd years of C++ has taught me that it's a hop and a skip from "ugh, that's really nasty" to "that's an established technique now".

Whatever you think of the things in this presentation, it's fun to learn. And things which we don't use in code today are still useful to know about when they crop up.
Speakers
avatar for Ben Deane

Ben Deane

Principal Engineer, Intel
Ben has been programming in C++ for this whole millennium. He spent just over 20 years in the games industry working for companies like EA and Blizzard; many of the games he worked on used to be fondly remembered but now he’s accepted that they are probably mostly forgotten... Read More →
Tuesday September 17, 2024 12:30 - 13:30 MDT
Maple 3/4/5

12:30 MDT

Bitcoin: From the White Paper to the World's Reserve Currency
Tuesday September 17, 2024 12:30 - 13:30 MDT
Software engineers have an astounding opportunity to benefit from programmable money: now we can program directly with value, introducing the objectivity, auditability, and neutrality of Open Source Code, instead of the opaqueness, ambiguities, biases, and other issues of conventional monetary processes.

Bitcoin is arguably the simplest of all cryptocurrencies, giving us a real opportunity to learn it at this conference. We’ll show examples of money programmability to demonstrate what is truly possible…

In this session, we will leverage our skill as programmers by describing Bitcoin's design as a Software Engineering project, using the white paper as the primary source material with the updates running today ("SegWit", "Taproot", Schnorr Signatures…), aiming to acquire an intuitive understanding of its programming language, Bitcoin Script. Wednesday, you’ll have the opportunity to see the details of Bitcoin Script at Kris Jusiak’s presentation, and on Thursday, we’ll discuss higher abstraction level protocols such as Lightning.



In Kris Jusiak’s presentation, Bitcoin Script: Implementation Details and Use Cases, scheduled for Wednesday, he will present the details which make programmable money possible.

In Eduardo Madrid’s presentation, Role Playing Bitcoin Protocols Including the Lightning Network, scheduled for Thursday, with just an intuitive understanding of Bitcoin Script he will describe the higher abstraction level protocols, such as the Lightning Network.

Join us on Friday for a panel in which Eduardo, Jon, and Kris will answer Bitcoin questions.
Speakers
avatar for Eduardo Madrid

Eduardo Madrid

Consultor
Eduardo has been working for many years on financial technologies, automated trading in particular, and other areas where performance challenges can be solved in C++. He contributes to open source projects and teaches advanced courses on Software Engineering with emphasis in Generic... Read More →
Tuesday September 17, 2024 12:30 - 13:30 MDT
Spruce 3/4

12:30 MDT

Case For Non-Moveable Types
Tuesday September 17, 2024 12:30 - 13:30 MDT
In this session we will look at what it means to be moved-from, what impact being moved-from can have on code correctness, and we'll consider if some types should simply just be non-moveable for the sake of safe, correct code!
Speakers
avatar for Jason Turner

Jason Turner

Sole Proprietor, Jason Turner
Jason is host of the YouTube channel C++Weekly, co-host emeritus of the podcast CppCast, author of C++ Best Practices, and author of the first casual puzzle books designed to teach C++ fundamentals while having fun!
Tuesday September 17, 2024 12:30 - 13:30 MDT
Cottonwood 2/3
 
Wednesday, September 18
 

08:00 MDT

Deciphering Coroutines - Recap and Prerequisites
Wednesday September 18, 2024 08:00 - 08:45 MDT
This is a session for those interested in visiting the "Deciphering Coroutines" on Thursday. That talk will assume prior familiarity with the C++20 coroutines feature and build heavily on the first "Deciphering Coroutines" talk from CppCon 2022.

If you have not seen the 2022 talk and are not yet familiar with C++20 coroutines, come to this session for a quick recap of the basics. We will do a detailed introduction to coroutines and get you up to speed with everything that you need to know to follow the presentation on Thursday.
Speakers
avatar for Andreas Weis

Andreas Weis

Andreas Weis has been writing C++ code in many different domains, from real-time graphics, to distributed applications, to embedded systems. As a library writer by nature, he enjoys writing portable code and exposing complex functionalities through simple, richly-typed interfaces... Read More →
Wednesday September 18, 2024 08:00 - 08:45 MDT
Cottonwood 2/3

12:30 MDT

Bitcoin Script: Implementation Details and Use Cases
Wednesday September 18, 2024 12:30 - 13:30 MDT
Kris will explain Bitcoin Script, a stack-based scripting language integral to Bitcoin's transaction validation process, Bitcoin Script plays a crucial role in defining custom transaction rules and smart contract functionalities. He will explore the inner workings of Bitcoin Script from a technical standpoint, focusing on its implementation details in C++.

Attendees will gain insights into key concepts such as opcodes, stack operations, and the evaluation engine, as well as security considerations for safe script execution. Additionally, practical use cases will be examined to demonstrate Bitcoin Script's real-world scenarios.



In Eduardo Madrid’s presentation, Role Playing Bitcoin Protocols Including the Lightning Network, scheduled for Thursday, with just an intuitive understanding of Bitcoin Script he will describe the higher abstraction level protocols, such as the Lightning Network.

Join us on Friday for a panel in which Eduardo, Jon, and Kris will answer Bitcoin questions.
Speakers
avatar for Kris Jusiak

Kris Jusiak

https://github.com/krzysztof-jusiak
Kris is a passionate Software Engineer with experience across various industries, including telecommunications, gaming, and most recently, finance. He specializes in modern C++ development, with a keen focus on performance and quality. Kris is also an active conference speaker and... Read More →
Wednesday September 18, 2024 12:30 - 13:30 MDT
Cottonwood 8/9

12:30 MDT

Improving your Team(work)
Wednesday September 18, 2024 12:30 - 13:30 MDT
As C++ developers, we will have the opportunity to work on many different teams and many different projects throughout our careers. We may sometimes work on a team that’s enjoyable, but isn't delivering too much. Other times, we might work on a team that delivers, but is no fun. If we’re really unlucky, we can end up on a team that doesn’t deliver and isn’t enjoyable. But occasionally, we can have the privilege of being part of a team that not only delivers, but is also a great team to be on.

The ability of us, as individual contributors within a team, to work together effectively is critically important. Often more so in C++ than in many other languages, due to the scale and complexity of the solutions we are often trying to deliver. This ability of individual contributors to work together collaboratively as a team is often not related to their C++ skills and knowledge.

This talk will explore the different characteristics of software development teams, and will look at the different roles and responsibilities within a team. Taking an evidence-based approach, we’ll consider what makes a good team, explore how to encourage more cooperative teamwork in order to achieve better results for everyone on the team, as well as offer some ideas for how to gently improve the teams on which we are currently working.
Speakers
avatar for Callum Piper

Callum Piper

Senior Software Engineer, Bloomberg
Callum Piper has been writing C++ since 2000. He has spent five years as a Senior Software Engineer at Bloomberg, working on Derivatives Pricing services. Prior to joining Bloomberg, Callum was a consultant for more than 10 years, during which he worked on a wide range of different... Read More →
Wednesday September 18, 2024 12:30 - 13:30 MDT
Spruce 3/4

12:30 MDT

xstd::any - A New Container for Any Type with Extra Features and Small Object Optimization
Wednesday September 18, 2024 12:30 - 13:30 MDT
Introducing xstd::any<N, Features...>, an extension of C++17’s std::any, designed to be a type-safe, owning container that can handle any data type with enhanced functionality. xstd::any can be configured with additional features such as comparability, hashability, and streamability, making it ready for use in std::map, std::unordered_map, and for output operations. This template-based implementation utilizes small object optimization to store types smaller than N bytes directly, avoiding heap allocation and minimizing dynamic memory overhead.
The presentation will explore the internal design and implementation of xstd::any<>, focusing on how it manages memory efficiently and maintains value semantics even when dynamically allocating larger objects. The session will showcase practical use cases, demonstrate usage with standard C++ containers, and explore the recent C++ features that enhance its functionality.
Like std::variant or std::tuple, xstd::any requires mechanisms to handle various contained object types seamlessly. We will discuss the addition of stream operators, hash functionality, and comparison operators, enhancing its usability across different programming scenarios.

Outline:
* Requirements: Understanding the needs for a versatile container like xstd::any, compared to other generic container types.
* Example Use Cases: Demonstrating practical applications and benefits.
Implementation and Memory Layout: Deep dive into technical details and optimizations.
* Testing: Approaches to ensure reliability and performance.
* Exception Safety: Handling errors and exceptions.
* Interaction with std:: Containers: Integration strategies and examples.
* Question & Answers: Open floor for audience queries and discussions.

Presentation Materials & Source Code: All resources, including detailed presentation slides and the source code, are freely available on GitHub for further exploration and testing.
Speakers
avatar for Erez Strauss

Erez Strauss

Strat - Sr Software Engineer, Eisler Capital
Erez Strauss worked in Banks and Hedge Funds while focused on low latency systems.
Wednesday September 18, 2024 12:30 - 13:30 MDT
Cottonwood 2/3

20:30 MDT

Lightning Talks
Wednesday September 18, 2024 20:30 - 22:00 MDT
Lightning talks are your five minutes of stardom. The format encourages a focused and often high-energy presentation about nearly anything (subject to approval by the conference) that might be interesting to the C++ community, including proprietary technologies. They can be of a lighter or humorous nature, but they need not be.

https://cppcon.org/lightning-talk-submissions/
Speakers
avatar for Phil Nash

Phil Nash

Yak Shaver, Shaved Yaks Ltd
Phil is the original author of the C++ test framework, Catch2. He's an independent trainer and consultant. He's also a member of the ISO C++ standards committee, organiser of C++ London and C++ on Sea, as well as co-host and producer of CppCast. More generally he's an advocate for... Read More →
Wednesday September 18, 2024 20:30 - 22:00 MDT
Adams A
 
Thursday, September 19
 

12:30 MDT

Bitcoin: Role Playing Bitcoin Based Protocols Including the Lightning Network
Thursday September 19, 2024 12:30 - 13:30 MDT
With an intuitive understanding of Bitcoin’s programmability we can study programming primitives such as “time” and “hash-time” lock contracts (HTLCs), which are the crucial building blocks for higher abstraction protocols such as the Lightning Network.

We will describe “Lightning” by role playing the actions of its nodes. We’ll see how they exchange value globally and nearly instantaneously. We’ll appreciate that this is a practical solution to the problem of micropayments, financial inclusion, and the starting point for even higher abstraction level protocols such as the Sphinx protocol. This protocol enables payments for streaming services without subscriptions or doxxing yourself.

Depending on audience interest, we’ll explore topics such as pay joins, coin joins, and/or how to incorporate into smart contracts real world data, using the primitive of Discrete Log Contracts (DLCs) to make so-called “Oracles.”

As we summarize these technical solutions, we’ll see that they create an ecosystem that leads to Bitcoin becoming the world’s reserve currency.



Join us on Friday for a panel in which Eduardo, Jon, and Kris will answer Bitcoin questions.
Speakers
avatar for Eduardo Madrid

Eduardo Madrid

Consultor
Eduardo has been working for many years on financial technologies, automated trading in particular, and other areas where performance challenges can be solved in C++. He contributes to open source projects and teaches advanced courses on Software Engineering with emphasis in Generic... Read More →
Thursday September 19, 2024 12:30 - 13:30 MDT
Cottonwood 2/3

12:30 MDT

BoF - GameDev, Growing our Conference Community
Thursday September 19, 2024 12:30 - 13:30 MDT
Birds of a Feather session about growing our GameDev engineering community at conferences.
Speakers
avatar for Guy Davidson

Guy Davidson

Head of Engineering, Six Impossible Things Before Breakfast
Guy Davidson (he/him) is the Head of Engineering Practice at Creative Assembly, one of the UK's oldest and largest game development studios.Guy started writing games over 40 years ago and has spent the last 24 of them at Creative Assembly. He is the co-author of Beautiful C++: 30... Read More →
Thursday September 19, 2024 12:30 - 13:30 MDT
Spruce 3/4

12:30 MDT

C++ Under the Hood: (cont.)
Thursday September 19, 2024 12:30 - 13:30 MDT
This session will cover the content that did not fit in the alloted time of my primary session: "C++ Under the Hood". sched.co/1gZfx (Wed afternoon)


I will address the ">>>" topics in the session (that did not fit) plus opun request may review the "✓" topics (that did fit).


The abstract for my main session:
My talk will examine the internal C++ mechanisms around the topics of:
✓ o The C++ onion as it relates to construction, destruction and polymorphism,
>>> o Order of Object construction & destruction, and pre- & post-main() processing.
✓ o Member Function Pointers (not your father’s C function pointer),
✓ o Member Data Pointers (not raw pointers) (data-morphic functionality),
>>> o Understanding the Call Stack, Stack Frames and Base Pointer mechanisms
Speakers
avatar for Chris Ryan

Chris Ryan

ISO-CPP/WG21 Standards Member •• Technical Speaker •• Conference Advisor, •• Emeritus ••
Chris Ryan was classically trained in both software and hardware engineering. He is well experienced in Modern C++ on extremely large/complex problem spaces and Classic ‘C’ on Embedded/Firmware devices (large & small). Chris has no interest in C#/.,Net, Java, js or any web-ish... Read More →
Thursday September 19, 2024 12:30 - 13:30 MDT
Cottonwood 8/9

20:30 MDT

Lightning Talks
Thursday September 19, 2024 20:30 - 22:00 MDT
Lightning talks are your five minutes of stardom. The format encourages a focused and often high-energy presentation about nearly anything (subject to approval by the conference) that might be interesting to the C++ community, including proprietary technologies. They can be of a lighter or humorous nature, but they need not be.

https://cppcon.org/lightning-talk-submissions/
Speakers
avatar for Michael Caisse

Michael Caisse

Michael started using C++ with embedded systems in 1990. He continues to be passionate about combing his degree in Electrical Engineering with elegant software solutions and is always excited to share his discoveries with others. Michael is a Principal Engineer at Intel where he works... Read More →
Thursday September 19, 2024 20:30 - 22:00 MDT
Adams A
 
Friday, September 20
 

07:45 MDT

Meet the Instructors
Friday September 20, 2024 07:45 - 08:30 MDT
Some of the best C++ instructors in the community will be available to answer your questions about how to convince your boss to bring them to you company.
Speakers
avatar for Jon Kalb

Jon Kalb

CppCon, Conference Chair, Jon Kalb, Consulting
Jon Kalb is using his decades of software engineering experience and knowledge about C++ to make other people better software engineers. He trains experienced software engineers to be better programmers. He presents at and helps run technical conferences and local user groups.He is... Read More →
avatar for Andreas Fertig

Andreas Fertig

Unique Code GmbH
Andreas Fertig, CEO of Unique Code GmbH, is an experienced trainer and consultant for C++ for standards 11 to 23.Andreas is involved in the C++ standardization committee, developing the new standards. At international conferences, he presents how code can be written better. He publishes... Read More →
avatar for Jason Turner

Jason Turner

Sole Proprietor, Jason Turner
Jason is host of the YouTube channel C++Weekly, co-host emeritus of the podcast CppCast, author of C++ Best Practices, and author of the first casual puzzle books designed to teach C++ fundamentals while having fun!
avatar for Klaus Iglberger

Klaus Iglberger

C++ Trainer/Consultant
Klaus Iglberger is a freelance C++ trainer and consultant. He has finished his PhD in Computer Science in 2010 and since then is focused on large-scale C++ software design. He shares his expertise in popular advanced C++ courses around the world (mainly in Germany, but also in the... Read More →
avatar for Mateusz Pusz

Mateusz Pusz

C++ Trainer | Principal Engineer, Train IT | Epam Systems
A software architect, principal engineer, and security champion with over 20 years of experience designing, writing, and maintaining C++ code for fun and living. A trainer with over 10 years of C++ teaching experience, consultant, conference speaker, and evangelist. His main areas... Read More →
avatar for Phil Nash

Phil Nash

Yak Shaver, Shaved Yaks Ltd
Phil is the original author of the C++ test framework, Catch2. He's an independent trainer and consultant. He's also a member of the ISO C++ standards committee, organiser of C++ London and C++ on Sea, as well as co-host and producer of CppCast. More generally he's an advocate for... Read More →
Friday September 20, 2024 07:45 - 08:30 MDT
Adams A

12:00 MDT

Bitcoin Panel: Ask Us (Almost*) Anything
Friday September 20, 2024 12:00 - 13:00 MDT
Join Eduardo, Jon, and Kris for an open discussion of the Bitcoin protocol, including implementations and implications.

* Note: We will avoid any discussion of partisan politics and will not give legal, financial, or tax advice.
Speakers
avatar for Eduardo Madrid

Eduardo Madrid

Consultor
Eduardo has been working for many years on financial technologies, automated trading in particular, and other areas where performance challenges can be solved in C++. He contributes to open source projects and teaches advanced courses on Software Engineering with emphasis in Generic... Read More →
avatar for Kris Jusiak

Kris Jusiak

https://github.com/krzysztof-jusiak
Kris is a passionate Software Engineer with experience across various industries, including telecommunications, gaming, and most recently, finance. He specializes in modern C++ development, with a keen focus on performance and quality. Kris is also an active conference speaker and... Read More →
avatar for Jon Kalb

Jon Kalb

CppCon, Conference Chair, Jon Kalb, Consulting
Jon Kalb is using his decades of software engineering experience and knowledge about C++ to make other people better software engineers. He trains experienced software engineers to be better programmers. He presents at and helps run technical conferences and local user groups.He is... Read More →
Friday September 20, 2024 12:00 - 13:00 MDT
Cottonwood 8/9

12:00 MDT

Tools Every C++ Developer Should Know
Friday September 20, 2024 12:00 - 13:00 MDT
Come to one of my favorite talks to give! In this session we'll discuss the wide range of tools available to the modern C++ developer, why, and how to use them for the highest code quality.
Speakers
avatar for Jason Turner

Jason Turner

Sole Proprietor, Jason Turner
Jason is host of the YouTube channel C++Weekly, co-host emeritus of the podcast CppCast, author of C++ Best Practices, and author of the first casual puzzle books designed to teach C++ fundamentals while having fun!
Friday September 20, 2024 12:00 - 13:00 MDT
Cottonwood 2/3