The program for CPPP is now available

The CPPP - an international online C++ Conference from 1-3 December 2021 with a hint of French accent - has published their programme.

CPPP Programme

by CPPP Conference

About the programme

CPPP has now published its program along three tracks:

  • Progress: This track is all about the bases. These are the talks that you wish every C++ developer would listen to early in their career to start on the right foot. They can be very valuable to experts but need to be accessible to students and beginners.
  • Produce: Talks that can be immediately applied by professional C++ programmers in their everyday job. Concrete tools and pragmatic ideas that work for legacy codebases and scale well with big teams.
  • Push Forward: Novel ideas and approaches for C++. They can be patterns that are not well known yet, new features coming in the language, libraries using these recent features or new ways to think about old problems.

You can also already buy your tickets.

 

CppCon 2021 trip report -- Timur Doumler

Timur has noted down his thoughts about the recent CppCon 2021 trip:

Trip Report

by Timur Doumler

About the article

I was on-site and this was actually my first in-person conference since the pandemic started, as well as my first conference in my new role as Developer Advocate at JetBrains. I had an amazing time, a huge thanks to the organisers for pulling this off! See you next year!

Strong Types for Safe Indexing in Collections – Part 2--Jonathan Boccara

Are you interested?

Strong Types for Safe Indexing in Collections – Part 2

by Jonathan Boccara

From the article:

In the previous article on strong types, we set out to find how to use strong types for safe indexing in collections.

More precisely, if we have two vectors with two indices to access them, how can we use strong types to make sure we use the right index for the right vector, and that we don’t swap them by mistake?

A capturing lambda can be a coroutine, but you have to save your captures while you still can

Will you use one?

A capturing lambda can be a coroutine, but you have to save your captures while you still can

by Raymond Chen

From the article:

We saw some time ago that capturing lambdas which are coroutines result in lifetime issues because the lambda itself returns at the first suspension point, at which point there’s a good chance it will be destructed. After that point, any attempt by the lambda body to access those captured variables is a use-after-free bug...

C++ String Benchmark -- Giovanni Dicanio

This small article compares different string implementations on the Windows platform.

C++ String Benchmark: STL vs. ATL vs. Custom Pool Allocator

by Giovanni Dicanio

From the article:

I was curious to compare the performance of the STL string implementation versus ATL CString, using Visual Studio 2019, so I wrote some simple C++ benchmark code for this purpose. I also added into the mix a custom string pool allocator.

 

Template Metaprogramming - How it All Started--Rainer Grimm

The series continue.

Template Metaprogramming - How it All Started

by Rainer Grimm

From the article:

Metaprogramming is programming on programs. C++ applies metaprogramming at compile time. It started in C++98 with template metaprogramming, was formalized in C++11 with the type-traits library, and since C++11 has steadily improved. The main driving force is constant expressions. In this post, I want to write about its roots...

Tripreport: virtual CppCon 2021--Jens Weller

Another report!

Tripreport: virtual CppCon 2021

by Jens Weller

From the article:

I attended this weeks virtual CppCon partially, as I'm also very busy with my upcoming conferences: Meeting Embedded & Meeting C++ 2021. Still I had a lot of fun. Thanks to Jon Kalb, the volunteers, speakers and all the attendees who made CppCon 2021 possible!

DigitalOcean: Ahead of the virtual server wave

Technical organizations today depend more and more heavily on their server infrastructure. In this environment it is critical to have a server infrastructure that not only is robust and reliable, but that is both flexible and secure.

The Standard C++ Foundation has relied on DigitalOcean cloud services for its server infrastructure since 2014. Standard C++ Foundation relies on its DigitalOcean servers to support its document repositories, file sharing, messaging systems, mailing lists, DNS, Firewalls, and websites.

DigitalOcean Droplets

The Standard C++ Foundation server infrastructure is made up of seven DigitalOcean Droplets, which are Linux-based virtual machines (VMs) that run on top of virtualized hardware. Each Droplet can be set up either as a standalone dedicated server, or as part of a larger cloud-based infrastructure.

Resizing a server, also known as vertical scaling, increases the amount of resources a server has. A key benefit of using DigitalOcean Droplets is their flexibility, as they can very easily be resized based on changing needs. Running a large event or expect a big bump in web traffic? Easily increase your Droplet’s CPU and RAM to get the speed and bandwidth you need, then dial it back down when your needs go back to normal. Or increase your Droplet size as your organization grows, increasing the RAM and CPU, and also permanently increase the size of a Droplet’s disk. Whichever type of increase you need, it’s all down with an easy change of settings in your dashboard.

Managing Droplets

Co-locating a server infrastructure does not mean giving up control. DigitalOcean Droplets can be controlled either through an API or through doctl, their command line interface client.

  • The DigitalOcean API: The DigitalOcean API lets you manage DigitalOcean resources programmatically using conventional HTTP requests. All the functionality available in the DigitalOcean Control Panel is also available through the API. You can use the API to create, destroy, and retrieve information about your Droplets. You can also use the API to enable backups, change kernels, or reboot your Droplets.
  • The DigitalOcean Command Line Client: doctl is a command-line interface for the DigitalOcean API and supports many of the same actions available through the API. doctl supports managing container registries from the command line. See the doctl documentation or use doctl compute --help for more information.

Key server features

In the seven years that Standard C++ Foundation has been a DigitalOcean customer, they have added most of their key functions onto its cloud-based DigitalOcean servers.

Following are the key areas in which the Standard C++ Foundation has come to rely on DigitalOcean:

  • Weekly Backups and Snapshots: Backups are automatically-created disk images of Droplets. Enabling backups for Droplets enables system-level backups at weekly intervals, which provides a way to revert to an older state or create new Droplets. Rather have those backups daily? You can do this using the API.
  • Track Droplet performance: Check how things are going at any time using Droplet Graphs, which are up-to-the-minute visualizations of how your server is performing over time that let you monitor Droplet performance metrics in the control panel.
  • DNS/Domains: Adding a domain you own to your DigitalOcean account lets you manage the domain’s DNS records with the control panel and API. Domains you manage on DigitalOcean also integrate with DigitalOcean Load Balancers and Spaces to streamline automatic SSL certificate management.
  • Cloud Firewalls: DigitalOcean Cloud Firewalls are a network-based, stateful firewall service for Droplets provided at no additional cost. Cloud firewalls block all traffic that isn’t expressly permitted by a rule.
  • Block Storage Volumes: Block storage volumes are network-based block devices that provide additional data storage for Droplets. You can move them between Droplets and resize them at any time.
  • Teams: Teams are useful for project leaders and business owners who want to share control of server infrastructure with developers, financial administrators, and other collaborators.