Loading…
CppNorth2022 has ended
CppNorth, The Canadian C++ Conference, July 17-20, 2022,
The Omni King Edward Hotel, Toronto, Ontario M5C 1 E9
B - Knightsbridge [clear filter]
Saturday, July 16
 

09:00 EDT

Generic Programming: from Strange to Normal
Generic programming has been both a scary aspect and a strength of C++ for decades now. Seen as something that is often complex to express yet easy to use, this programming paradigm pervades contemporary C++ programs, and many are those who use the standard library without noticing how much of it is made of generic types and algorithms.

This course proposes an exploration of generic programming through many lenses. From relatively simple use cases, we will move to expressing one’s own generic types, writing efficient and safe generic containers and algorithms, writing and using type traits, solving real problems through template metaprogramming (the reputedly scary part; we’ll make it fun), variadic templates, programming with constexpr, fold expressions, and getting acquainted with the beauty of concepts. In the end, we will write less code to get better results.




Morning Break 8:30am – 9:00am
  • Regular/Decaffeinated coffee and Hot teas
  • Croissants, Danishes, and Muffins served with fruit preserves and butter
  • Assorted whole fruit

Mid-Morning Break 10:45am – 11:15am
  • Regular/Decaffeinated coffee and Hot teas
  • Assorted plain and fruit Greek yogurt

Lunch 12:15pm – 1:30pm
  • Regular/Decaffeinated coffee and Hot teas
  • Assorted Sodas
  • Mediterranean cobb salad with chickpeas, cherry tomatoes, roasted peppers, olives, hard-boiled eggs, feta, pomegranates, cucumbers, and oregano vinaigrette
  • Farro Salad: Sultana raisins, crushed almonds, fine herbs, and citrus
  • Heirloom tomato salad: Arugula, torn basil, and balsamic reduction
  • Marinated chicken with capers, olives, tomatoes, and grilled vegetables
  • Tortilla Espanola with roasted pepper, confit tomatoes and salt cod
  • Penne Primavera al forno
  • Rose water minted fruit salad
  • Orange olive oil almond cake

Afternoon Break 3:00pm – 3:30pm
  • Regular/Decaffeinated coffee and Hot teas
  • Assorted Sodas
  • Brownies and Blondies


Speakers
avatar for Patrice Roy

Patrice Roy

Professor, Université de Sherbrooke
Patrice Roy has been playing with C++, either professionally, for pleasure or (most of the time) both for over 30 years. After a few years doing R&D and working on military flight simulators, he moved on to academics and has been teaching computer science since 1998. Since 2005, he’s... Read More →


Saturday July 16, 2022 09:00 - 17:00 EDT
B - Knightsbridge
 
Sunday, July 17
 

09:00 EDT

Generic Programming: from Strange to Normal
Generic programming has been both a scary aspect and a strength of C++ for decades now. Seen as something that is often complex to express yet easy to use, this programming paradigm pervades contemporary C++ programs, and many are those who use the standard library without noticing how much of it is made of generic types and algorithms.

This course proposes an exploration of generic programming through many lenses. From relatively simple use cases, we will move to expressing one’s own generic types, writing efficient and safe generic containers and algorithms, writing and using type traits, solving real problems through template metaprogramming (the reputedly scary part; we’ll make it fun), variadic templates, programming with constexpr, fold expressions, and getting acquainted with the beauty of concepts. In the end, we will write less code to get better results.

Morning Break 8:30am – 9:00am
  • Regular/Decaffeinated coffee and Hot teas
  • Bagels with Whipped Cream Cheese
  • Assorted whole fruit

Mid-Morning Break 10:30am – 11:15am
  • Regular/Decaffeinated coffee and Hot teas
  • Assorted Granola Bars: Cranberry/Almond, Ginger Blueberry, Quinoa, Apple Cinnamon
  • Fruit Smoothies:  Strawberry and Banana

Lunch 12:15pm – 1:30pm
  • Regular/Decaffeinated coffee and Hot teas
  • Assorted sodas
  • Tum Yum Soup with shrimp
  • Korean style crunch ramen noodle salad with julienne vegetables and sweet ginger dressing
  • Edamame slaw: Crisp apples, red cabbage, roasted peanuts, carrots, and soy lime vinaigrette
  • Thai Mango Salad
  • Sweet and spicy chicken
  • Fish and vegetable coconut curry
  • Vegetable potstickers
  • Kimchi fried rice
  • Coconut tapioca pudding with lychee and pineapples
  • Citrus salad

Afternoon Break 3:00pm – 3:30pm
  • Regular/Decaffeinated coffee and Hot teas
  • Lemonade
  • Crudité with dip


Speakers
avatar for Patrice Roy

Patrice Roy

Professor, Université de Sherbrooke
Patrice Roy has been playing with C++, either professionally, for pleasure or (most of the time) both for over 30 years. After a few years doing R&D and working on military flight simulators, he moved on to academics and has been teaching computer science since 1998. Since 2005, he’s... Read More →


Sunday July 17, 2022 09:00 - 17:00 EDT
B - Knightsbridge
 
Monday, July 18
 

11:00 EDT

Programming for Warm Days: Avoiding Dangerous Conversions
Join Patrice Roy for an informal live coded session about temperature and how one can convert nicely between measurement units.  It will be both technical and amusing.

Speakers
avatar for Patrice Roy

Patrice Roy

Professor, Université de Sherbrooke
Patrice Roy has been playing with C++, either professionally, for pleasure or (most of the time) both for over 30 years. After a few years doing R&D and working on military flight simulators, he moved on to academics and has been teaching computer science since 1998. Since 2005, he’s... Read More →


Monday July 18, 2022 11:00 - 12:00 EDT
B - Knightsbridge

13:30 EDT

The fine details behind C++ containers and algorithms
The C++ specification defines, in the library part of the spec, all sorts of requirements for containers and algorithms. Those requirements include complexity requirements, invalidation and concurrency rules. In this talk we will explore a sample of these rules to better understand the considerations of the spec and the practical implications. We would understand the limitations posed for library implementers and for users, go through some benchmarks and conclude with some practical advice and recommendations.

Speakers
avatar for Amir Kirsh

Amir Kirsh

Teacher, Dev Advocate, Academic College of Tel-Aviv-Yafo and Incredibuild
Amir Kirsh is a C++ lecturer at the Academic College of Tel-Aviv-Yaffo and a visiting lecturer at Stony Brook University, previously the Chief Programmer at Comverse, after being CTO and VP R&D at a startup acquired by Comverse. He is also a co-organizer of the annual Core C++ conference... Read More →


Monday July 18, 2022 13:30 - 14:30 EDT
B - Knightsbridge

15:15 EDT

Lets Talk: Extend and Embed Python with C++
Python is very communicative. On the one hand, it is very easy to call C++ functionality from Python (extend), and on the other hand, Python can be used directly from a C++ runtime (embed). Extending allows you to offload performance-critical parts of your program to C++ or to overcome the GIL (global interpreter lock) in Python. Thanks to embedding a Python interpreter in your C++ application, the C++ application has a scripting interface.

I show how you can include existing shared libraries and extend Python with your own shared libraries thanks to the ctypes module. Furthermore, I introduce the frameworks SWIG and pybind11 to almost automate this process. Finally, I go into the mirror image process: How to embed Python in a C++ application.

Speakers
avatar for Rainer Grimm

Rainer Grimm

CEO, Modernes C++ GmbH
Rainer has worked as a software architect, team lead, and instructor since 1999. In 2002, Rainer created a company-intern meeting for further education and had given training courses since 2002. Rainer's first tutorials were about proprietary management software, but he began teaching... Read More →


Monday July 18, 2022 15:15 - 16:15 EDT
B - Knightsbridge

16:45 EDT

Lessons learned from porting LibreOffice's build system to Meson
LibreOffice is the single largest open source C++ code base in the world. It currently builds with a bespoke build system written only in GNU Make. While this has worked fine for a long time it has many known downsides. The biggest among these is that not many people know enough about the system to change it to new requirements.

The developers have shown interest in replacing the current system with a standard build system, specifically Meson. Eventually a test port was written to examine how reasonable such a change would be. In this talk we examine how such a port was done, what parts of it took the most amount of effort, how dependencies were handled, what unexpected potholes were fallen into and so on.

The results should be useful for everyone considering updating an existing build system to a modern one.

Speakers
avatar for Jussi Pakkanen

Jussi Pakkanen

Consultant, Rakettitiede oy
Jussi Pakkanen is the very model of a modern coder general. He programs in styles typed, scripted and functional. He's dealt with historical build systems quite cadaverous, replacing them with Meson files short, snappy and glamorous. In creating apps embedded, kernel, gui and terminal... Read More →


Monday July 18, 2022 16:45 - 17:45 EDT
B - Knightsbridge
 
Tuesday, July 19
 

12:15 EDT

TIME CHANGE !!! Why Iterators Got It All Wrong
You understand iterators, right? How would you describe them? "Iterators are used to point into sequences of elements." Sounds good? More recently, the concept of ranges has been introduced to mean anything that exposes iterators. In particular, ranges include range adaptors for lazily transforming or filtering sequences of elements, and they, too, have iterators. All good? Unfortunately, not. The iterator concept, which we have been using since the advent of C++, is fundamentally flawed. In particular, some iterators must behave differently depending on whether they are meant to point at an element or at a boundary between elements. So elements and boundaries are really two distinct concepts. In this talk, I will convince you that the problem is real and has practical implications, make a proposal on how to fix it and show how the solution not only fixes the problem but makes for clearer code and prevents mistakes.

Speakers
avatar for Arno Schödl

Arno Schödl

CTO, think-cell
Arno is responsible for the design, architecture and development of all our software products. He oversees think-cell's R&D team, Quality Assurance and Customer Care.Before founding think-cell, Arno worked at Microsoft Research and McKinsey. Arno studied computer science and management... Read More →


Tuesday July 19, 2022 12:15 - 13:15 EDT
B - Knightsbridge

13:30 EDT

Computing⌴in⌴the⌴1960’s
What was it like to be a computer programmer almost 60 years ago?

I started programming in those days, and would like to share with you my recollections and first-hand experiences on how we went about the job of programming. I will describe what the hardware was like and what software was available for programmers, and will also offer anecdotes dating from that era.

Come and join me in a return to the time of punch cards, punched paper tape, unit record equipment, and disk drives the size of a laundry machine!

Speakers
avatar for Walter E Brown

Walter E Brown

With broad experience in industry, academia, consulting, and research, Dr. Walter E. Brown has been a computer programmer for almost 60 years, and a C++ programmer for more than 40 years.He joined the C++ standards effort in 2000, and has since written circa 175 proposal papers. Among... Read More →


Tuesday July 19, 2022 13:30 - 14:30 EDT
B - Knightsbridge

15:15 EDT

How to "OO" in C++
C++ has many ways to implement polymorphism: Inheritance and virtual functions, static polymorphism, concept-based polymorphism, the visitor pattern, variants and overloaded, etc. While this is very powerful, it can also be very confusing (after all, many languages are "one size fits all"). In this talk, I will explain and demonstrate each approach, including how to use it and why it exists, and then provide a framework for deciding which one to use in your code. I will also explain why "OO" is in quotation marks.

Speakers
avatar for Mike Spertus

Mike Spertus

Mike is a Senior Principal Engineer in AWS Dev Tools, and an Adjunct Professor at the University of Chicago. He has been involved with the C and C++ family of languages since the mid eighties, when he helped write one of the first MS-DOS C compilers, and is a long-time member of the... Read More →


Tuesday July 19, 2022 15:15 - 16:15 EDT
B - Knightsbridge

16:45 EDT

What Makes Good C++ Programmers: a Continuous Search for C++ Teaching Recipes
C++ evolution is challenging for both students and teachers. The language did not become any easier to teach as the amount of required material grew over the years. This talk is a discussion based on more than 20 years of teaching C++, from C++98 to C++20. Focusing on the challenges, the tools, the changes made along the years, expectations and a lot of practical examples, of both success and failures. We will discuss how a modern C++ course syllabus should look like, exercises and exams, writing code and reading code, using code examples and more. The work of the ISO C++ Study Group 20, on C++ Education, would also be discussed, as it is highly related this subject. The talk is aimed at sharing personal experiences, practical tips and advice, but also discussing with the audience and getting different views. It is aimed not only for educators, but to anybody who is interested in the challenges of teaching C++, including those who are working with, or going to recruit, junior C++ programmers, getting to know the challenges and contributing to this discussion.

Speakers
avatar for Amir Kirsh

Amir Kirsh

Teacher, Dev Advocate, Academic College of Tel-Aviv-Yafo and Incredibuild
Amir Kirsh is a C++ lecturer at the Academic College of Tel-Aviv-Yaffo and a visiting lecturer at Stony Brook University, previously the Chief Programmer at Comverse, after being CTO and VP R&D at a startup acquired by Comverse. He is also a co-organizer of the annual Core C++ conference... Read More →


Tuesday July 19, 2022 16:45 - 17:45 EDT
B - Knightsbridge
 
Wednesday, July 20
 

11:00 EDT

Programming with kids (and what's in it for us!)
Are you raising the future generation of programmers? What do we need to watch out for? Let’s talk about programming with kids and how we grow as they grow!

Speakers
avatar for Fatemeh Jafargholi

Fatemeh Jafargholi

Director-Actuarial Programming Lead, Moodys' Analytics
I've been programming in C++ for about 15 years as a backend programmer. I lead a team of software developers, and also the task of educating all the software developers in our department, and I love it!


Wednesday July 20, 2022 11:00 - 12:00 EDT
B - Knightsbridge

13:30 EDT

The Twin Algorithms
This is the third and final talk of The Algorithm Intuition Trilogy, the first two talks being Algorithm Intuition (C++Now 2019) and Better Algorithm Intuition (Meeting C++ 2019). This talk will explore the history of a programming language that has algorithms built into its core. This language has many links to modern programming languages today - including C++ - and studying this language has been the most fun and most rewarding academic task I have ever completed. I hope to share everything I have learned about this language and how you can apply it to C++ (and any language).

Speakers
avatar for Conor Hoekstra

Conor Hoekstra

Senior Library Software Engineer, NVIDIA
Conor (he/him) is a Senior Library Software Engineer at NVIDIA working on the RAPIDS team. He is extremely passionate about programming languages, algorithms and beautiful code. He is the founder and organizer of the Programming Languages Virtual Meetup, he has a YouTube channel and... Read More →


Wednesday July 20, 2022 13:30 - 15:00 EDT
B - Knightsbridge
 
Filter sessions
Apply filters to sessions.