In-depth: Functional programming in C++

In this reprinted #altdevblogaday in-depth piece, id Software co-founder and technical director John Carmack looks at the value in programming in a functional style with C++.
(old but gold)

https://www.gamasutra.com/view/news/169296/Indepth_Functional_programming_in_C.php

Advertisements

EC2 Network Performance Cheat Sheet

EC2 Network Performance Cheat Sheet

What is the maximum network throughput of your EC2 instance? The answer to this question is key to choosing the type of an instance or defining monitoring alerts on network throughput. Unfortunately, you will only find very vague information about the networking capabilities of EC2 instances within AWS’s service description and documentation. That is why I run a network performance benchmark for almost all EC2 instance types within the last few days. The results are compiled into the following cheat sheet.

https://cloudonaut.io/ec2-network-performance-cheat-sheet/

Aurora Serverless MySQL Generally Available

You may have heard of Amazon Aurora, a custom built MySQL and PostgreSQL compatible database born and built in the cloud. You may have also heard of serverless, which allows you to build and run applications and services without thinking about instances. These are two pieces of the growing AWS technology story that we’re really excited to be working on. Last year, at AWS re:Invent we announced a preview of a new capability for Aurora called Aurora Serverless. Today, I’m pleased to announce that Aurora Serverless for Aurora MySQL is generally available. Aurora Serverless is on-demand, auto-scaling, serverless Aurora. You don’t have to think about instances or scaling and you pay only for what you use.

This paradigm is great for applications with unpredictable load or infrequent demand. In production, you can save on costs by adjusting to scale based on actual load, in extremely granular increments – matching your demand curve almost perfectly. In development, you can save on costs by automatically pausing the cluster (scale to zero!) when it’s not in use. I’m excited to show you how this all works so let’s look at how we launch a Serverless Aurora cluster.

https://aws.amazon.com/blogs/aws/aurora-serverless-ga/

Why Discord is Sticking with React Native

Being one of the first apps built with React Native, we were excited to share our first year journey using React Native back in 2016.

Looking back at the past three years, React Native has proven to be extremely successful at Discord and helped drive our iOS user adoption from zero to millions!

More specifically, React Native has allowed us to reap the benefits of quickly leveraging reusable code across platforms, as well as develop a small and mighty team.

Meanwhile, we’ve learned to adapt to its inevitable pain points without sacrificing overall productivity.

https://blog.discordapp.com/why-discord-is-sticking-with-react-native-ccc34be0d427

Interactive: The Top Programming Languages 2018

This app ranks the popularity of dozens of programming languages. You can filter them by excluding sectors that aren’t relevant to you, such as “Web” or “Embedded.” (Which sectors a language can be found listed in is based on typical use patterns we’ve seen in the wild.) Rankings are created by weighting and combining 11 metrics from 9 sources. We have one less source this year, as the Dice job site shut down its API. However, the Dice metric is still available for previous years’ data. (Read more about our method and sources).

The default set of weights produces our IEEE Spectrum ranking—but there are preset weights for those more interested in what’s trending or most looked for by employers. Don’t like the presets? Create your own ranking by adjusting the weights yourself. To compare with a previous year’s data, click “Add a Comparison” and then click “Edit Ranking,” which will give you the option to compare with data from 2014 to 2017.

This app was originally developed in collaboration with IEEE Spectrum by data journalist Nick Diakopoulous.

https://spectrum.ieee.org/static/interactive-the-top-programming-languages-2018

Primer on Python Decorators

In this introductory tutorial, we’ll look at what decorators are and how to create and use them. Decorators provide a simple syntax for calling higher-order functions.

By definition, a decorator is a function that takes another function and extends the behavior of the latter function without explicitly modifying it.

Sounds confusing—but it’s really not, especially after we go over a number of examples. You can find all the examples from this article here.

https://realpython.com/primer-on-python-decorators/

4 Techniques for Testing Python Command-Line (CLI) Apps

You’ve just finished building your first Python command-line app. Or maybe your second or third. You’ve been learning Python for a while, and now you’re ready to build something bigger and more complex, but still runnable on a command-line. Or you are used to building and testing web applications or desktop apps with a GUI, but now are starting to build CLI applications.

In all these situations and more, you will need to learn and get comfortable with the various methods for testing a Python CLI application.

While the tooling choices can be intimidating, the main thing to keep in mind is that you’re just comparing the outputs your code generates to the outputs you expect. Everything follows from that.

In this tutorial you’ll learn four hands-on techniques for testing Python command-line apps:

  • “Lo-Fi” debugging with print()
  • Using a visual Python debugger
  • Unit testing with pytest and mocks
  • Integration testing

https://realpython.com/python-cli-testing/