Video & On-Demand

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.

CppCon 2021 Thursday keynote video posted: Michael Caisse on "Small Inspiration"

cppcon2021-keynote-michael.pngThe fourth keynote from CppCon 2021 is now publicly available via JetBrains, our video sponsor:

Small Inspiration [jetbrains.com/cppcon2021]

by Michael Caisse

Embedded devices offer lessons in engineering at all scales and can provide inspiration to seasoned practitioners and future technologists. Watch the talk to learn from the embedded world and become inspired to inspire.

CppCon 2021 Tuesday keynote video posted: Herb Sutter on "Pattern matching using 'is' and 'as'"

cppcon2021-keynote-herb.pngThe second keynote from CppCon 2021 is now publicly available via JetBrains, our video sponsor:

Thoughts on pattern matching using 'is' and 'as' [jetbrains.com/cppcon2021]

by Herb Sutter

In this talk, the speaker shows the C++ pattern matching libraries and language proposals that were considered, and presents his own contribution that builds on them.

CppCon 2021 C++ committee fireside chat panel video posted

cppcon2021-fireside.pngThe second video from CppCon 2021 is now publicly available via JetBrains, our video sponsor:

Committee Fireside Chat [jetbrains.com/cppcon2021]

Panelists: Bjarne Stroustrup, Lisa Lippincott, Gabriel Dos Reis, David Stone, Michael Wong, Inbal Levi

Moderator: Herb Sutter

The panel of representative members of the C++ standards committee answers questions on C++.

CopperSpice: Paradigms, Polymorphism, and Generic Programming

New video on the CopperSpice YouTube Channel:

Paradigms, Polymorphism, and Generic Programming

by Barbara Geller and Ansel Sermersheim

About the video:

We had no idea the word paradigm could actually be a useful term. Come watch our new video and find out what we learned. It is both more complex and more interesting than you might think.

Please take a look and remember to subscribe!

Audio Programming with Marsyas -- Richard Thomson

Utah C++ Programmers has released a new video.

Audio Programming with Marsyas

by Richard Thomson

From the video description:

Marsyas is an open source software framework for audio processing with specific emphasis on Music Information Retrieval applications. [...] Marsyas has been used for a variety of projects in both academia and industry.

This month, Richard Thomson will give us an introduction to the Marsyas API. We'll take a look at how to use this library to extract musical score features from an audio file.

https://www.youtube.com/watch?v=urNdsVT7V3A

CppCon 2020 Constructing Generic Algorithms: Principles and Practice--Ben Deane

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!

Constructing Generic Algorithms: Principles and Practice

by Ben Deane

Summary of the talk:

"You have all these algorithms at your disposal. *Learn them.*"
-- Sean Parent, GoingNative 2013.

Great advice, and the algorithms can do a lot. But they can't do everything, and the fixed set in the standard was never meant to be the last word in every problem. Sometimes we do need to write our own solutions. What are the best practices for that?

This talk examines how to build our own algorithms. We'll start with a raw loop that solves a nontrivial problem, and turn it into a generic algorithm capable of supporting a wide variety of use cases without loss of expressivity or efficiency.

Along the way we'll consider algorithmic patterns, how to structure the
interface, how the types interact, iterator category concerns, testing, and
more. We'll look at how ranges and concepts help us to refine and focus things.

We'll also see where the existing algorithms fall short, and take a look at some non-obvious use cases, including some minor modifications or wrappings that give us extra flexibility.

CppCon 2019 Behind Enemy Lines - Reverse Engineering C++ in Modern Ages--Gal Zaban

Registration is now open for CppCon 2021, which starts on October 24 and will be held both in person and online. To whet your appetite for this year’s conference, we’re posting videos of some of the top-rated talks from our most recent in-person conference in 2019 and our online conference in 2020. Here’s another CppCon talk video we hope you will enjoy – and why not register today for CppCon 2021 to attend in person, online, or both!

Behind Enemy Lines - Reverse Engineering C++ in Modern Ages

by Gal Zaban

Summary of the talk:

What do C++ programs really look like? When developers think about hierarchy and virtual calls they see it as design patterns and code but reverse engineers look at it from a different angle, they think about Assembly puzzles.

C++ is known as a tangled language, templates, lambdas and pointers. All of these features create a jungle of objects intended to make life easier for the programmer. But once the program is compiled, the target program is no longer what it once seemed.

Reversing C++ programs is tedious, demanding, and requires rebuilding inheritance, identifying templates and tainting program flow in order to combat the ties of function overloading and class utilization.

C++ Binaries are a world of mysteries. In my presentation I am going to show how C++ binaries looks like after compilation and how reverse engineers see C++ binaries and understand their logic...