teleren/devto huggingface dataset:
Appendix: Performance Efficiency (Selection) - AWS Well-Architected Framework Study Guide
Published: 2022-03-15 14:18:09

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)

[Appendix: Performance Efficiency](https://docs.aws.amazon.com/wellarchitected/latest/framework/a-performance-efficiency.html)

**How do you select the best performing architecture?**

- Understand the available services and resources
- Define a process for architectural choices
- Factor cost requirements into decisions
- Use policies or reference architectures
- Use guidance from your cloud provider or an appropriate partner
- Benchmark existing workloads
- Load test your workload

**How do you select your compute solution?**

- Evaluate the available compute options
- Understand the available compute configuration options
- Collect compute-related metrics
- Determine the required configuration by right-sizing
- Use the available elasticity of resources
- Re-evaluate compute needs based on metrics

**How do you select your storage solution?**

- Understand storage characteristics and requirements
- Evaluate available configuration options
- Make decisions based on access patterns and metrics

**How do you select your database solution?**

- Understand data characteristics
- Evaluate the available options
- Collect and record database performance metrics
- Choose data storage based on access patterns
- Optimize data storage based on access patterns and metrics

**How do you configure your networking solution?**

- Understand how networking impacts performance
- Evaluate available networking features
- Choose appropriately sized dedicated connectivity or VPN for hybrid workloads
- Leverage load-balancing and encryption offloading
- Choose network protocols to improve performance
- Choose your workload’s location based on network requirements
- Optimize network configuration based on metrics

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)
Appendix: Performance Efficiency (Tradeoffs) - AWS Well-Architected Framework Study Guide
Published: 2022-03-15 14:28:14

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)

[Appendix: Performance Efficiency](https://docs.aws.amazon.com/wellarchitected/latest/framework/a-performance-efficiency.html)

**How do you use tradeoffs to improve performance?**

- Understand the areas where performance is most critical
- Learn about design patterns and services
- Identify how tradeoffs impact customers and efficiency
- Measure the impact of performance improvements
- Use various performance-related strategies

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)
Appendix: Performance Efficiency (Monitoring) - AWS Well-Architected Framework Study Guide
Published: 2022-03-15 14:23:11

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)

[Appendix: Performance Efficiency](https://docs.aws.amazon.com/wellarchitected/latest/framework/a-performance-efficiency.html)

**How do you monitor your resources to ensure they are performing?**

- Record performance-related metrics
- Analyze metrics when events or incidents occur
- Establish Key Performance Indicators (KPIs) to measure workload performance
- Use monitoring to generate alarm-based notifications
- Review metrics at regular intervals
- Monitor and alarm proactively

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)
Appendix: Performance Efficiency (Review) - AWS Well-Architected Framework Study Guide
Published: 2022-03-15 14:20:38

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)

[Appendix: Performance Efficiency](https://docs.aws.amazon.com/wellarchitected/latest/framework/a-performance-efficiency.html)

**How do you evolve your workload to take advantage of new releases?**

- Stay up-to-date on new resources and services
- Define a process to improve workload performance
- Evolve workload performance over time

[Return to Well-Architected Framework Guide](https://dev.to/aidutcher/aws-well-architected-framework-study-guide-introduction-fjg)
Send email using next.js, react-hook-form, tailwindcss & nodemailer
Tags: tailwindcss, nextjs, nodemailer, reacthookform
Published: 2022-03-15 14:18:00

Here is the complete example of contact us form using nextjs, nodemailer, reacthookform and tailwindcss.

[https://github.com/Usmanasif1997/nextjs-nodemailer](https://github.com/Usmanasif1997/nextjs-nodemailer)
A new unified streaming and batch table storage solution similar to iceberg/hudi/delta lake
Tags: programming, opensource, database, spark
Published: 2022-03-15 14:17:25

I have seen a new unified streaming and batch table storage solution named _**Lakesoul**_ on Github, which is similar to Iceberg, Hudi and Detalake, but with several new functions, such as upsert and meta-data Management. However, there are also some shortcomings, such as Flink is not supported. But its roadmap shows Flink integration in progress. Have any of you used Lakesoul before?

I used _upsert_, which can be interpreted as a combination of update and insert, which is a great time saver. Lakesoul supports range and Hash partitions, which can be used to add, delete, and modify rows and columns simultaneously using upsert.

**Here's [an official description of Upsert from Lakesoul]**(https://github.com/meta-soul/LakeSoul/wiki/03.-Usage-Doc#3-upsert-lakesoultable)：
Multi-level partitioning and efficient upsert: LakeSoul supports range and hash partitioning, and a flexible upsert operation at row and column level. The upsert data are stored as delta files, which greatly improves the efficiency and concurrency of writing data, and the optimized merge scan provides efficient MergeOnRead performance.

**Code Examples**
```
import com.dmetasoul.lakesoul.tables.LakeSoulTable
import org.apache.spark.sql._
val spark = SparkSession.builder.master("local")
  .config("spark.dmetasoul.lakesoul.meta.host", "cassandra_host")
  .config("spark.sql.extensions", "com.dmetasoul.lakesoul.sql.LakeSoulSparkSessionExtension")
  .getOrCreate()
import spark.implicits._

val tablePath = "s3a://bucket-name/table/path/is/also/table/name"

val lakeSoulTable = LakeSoulTable.forPath(tablePath)
val extraDF = Seq(("2021-01-01",3,"chicken")).toDF("date","id","name")

lakeSoulTable.upsert(extraDF)
```
 
[The official of Lakesoul, DMetaSoul](https://github.com/meta-soul/LakeSoul/wiki), introduces that LakeSoul is a unified streaming and batch table storage solution built on top of the _Apache Spark engine_ by the DMetaSoul team, and supports scalable metadata management, ACID transactions, efficient and flexible upsert operation, schema evolution, and streaming & batch unification.
How to set up a reverse proxy with Nginx, configure SSL and connect a subdomain
Tags: networking, reverseproxy, nginx, cloudflare
Published: 2022-03-15 14:15:14

Hello Devs,

Today i am going to explain you what a reverse proxy is and how to configure it using [Nginx](https://www.nginx.com/).

## What is a reverse proxy?

A reverse proxy server is an intermediate connection point positioned at a network's edge. It receives initial HTTP connection requests, acting like the actual endpoint. Essentially your network's traffic cop, the reverse proxy serves as a gateway between users and your application origin server.

## Get Started
**Prerequisites**
I assume you have a domain and a Linux server with [Ubuntu](https://ubuntu.com/), [Debian](https://www.debian.org/index.nl.html) or [Centos](https://www.centos.org/) installed. In this example, I'm using [Ubuntu](https://ubuntu.com/) 20.04.

**Install Nginx**
To get started, open a ssh connection to your server, and install Nginx with the following commands.

Update your machine:
`sudo apt update`
Install nginx:
`sudo apt install nginx`

After the installation process, Ubuntu 20.04 starts Nginx, so the web server should already be up and running. We can check this to make sure the service is running with this command:
`systemctl status nginx`

> If nginx is not running, it can be possible that port 80 is already in use by Apache. In this case, you need to stop / remove Apache.

**Configuration**
To configure the reverse proxy, edit the domain's server block configuration using Nano:
`nano /etc/nginx/sites-available/default`

Add this at the bottom of the config file:
```
server {
    listen 80;
    server_name www.example.com example.com;

    location / {
       proxy_pass http://127.0.0.1:8080;
    }
}
```
Change the value of server_name with your domain / subdomain, and change the port of proxy pass to the port that your web server is running on.

Restart the Nginx service:
`systemctl restart nginx`

The reverse proxy should work now. If this is not the case, comment below to get help.

**Configure DNS**
Now let's connect your domain.
Go to the DNS settings of your domain ([Cloudflare](https://www.cloudflare.com/) for example) and add an A record with your domain / subdomain as name and the ip address of your server as value. Save it and you're done!

**Generate an SSL certificate**
You can generate a SSL certificate (for free) with Letsencrypt to encrypt your traffic and enable your domain to be accessed from the HTTPS protocol.

Install Certbot and dependencies:
`sudo apt install certbot python3-certbot-nginx`

Generate the certificate:
`sudo certbot --nginx -d example.com`
replace example.com with your (sub)domain.

Enter your email and agree to the TOS. 
After Certbot completes generating the certificate, it should automaicly reload Nginx with the new settings.

That's it!

Thanks for reading.
I hope this was a helpful article. If so, let me know :)
Planning for this week
Published: 2022-03-15 14:14:08

#Overview
This week, I mainly focused on finishing React Native home page so that it can be merged as soon as possible. After some small fixes and rebasing, it got merged.

#Code reviewing
I did a review of James' [PR](https://github.com/Seneca-CDOT/telescope/pull/3167) about making an about screen for mobile app. He did a great job but a small issue was that he needed to changed the color of header Text to be the same as Telescope's original web app.
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/y2k3cpalsore6ew9uyrv.png)
 
One more cool thing is that, inside the about page of original Telescope app, there is a footer that needs to be added. So I decided to create a new [issue](https://github.com/Seneca-CDOT/telescope/issues/3203) about that. Since this week I do not have issue to work on so I assigned it to myself.

#Adding footer to Mobile app's about screen
![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lw4y8xcj54wcnjwefwyn.png)
This week I will mainly focus on creating a footer for React Native app. This will be complicated since there will be an integration with Github API service. Also There are a lot of links that need to be navigated too.
Basic features that every web developer wants 👩‍💻
Tags: webdev, productivity, php, laravel
Published: 2022-03-15 14:12:04

**DECK** intends to automate the most basic features that every web developer needs daily ⚙️.

## What's included in DECK V4? 🎉

**- Multiple development environments in one app.**
Having numerous projects running is expected, so a one-click setup will increase productivity by reducing the overhead of various dependencies to set up one project. DECK marketplace has the most important images to fulfill your project need, and the marketplace is constantly increasing; not only that, you can now create your own docker projects as a custom dev environment

**- Automatic HTTPS.**
With a one-click setup, you are ready to server secure and non-secure right from the app.


**- Integrated logging.**
No more go to find the log file in a file or in a container. DECK will show you logs for each stack directly in the app.

**- A power tool.**
Now you run any composer and artisan command for your PHP or Laravel apps. And we will be adding power tools to other tech stacks as well. 

**- Add PHP extensions any time directly from the app.**


### What's coming next? 🤩

- Live reload for PHP, Javascript apps.

- Automatic sync with a remote server using Rsync.

- Share projects previews as public URLs.

- Deploy projects to AWS, Google cloud & DigitalOcean.
and more ...

So let's change the way of local development 💖. [Get DECK today](https://get-deck.com/)
Figma VS Adobe
Tags: figma, uiux, aws, adobe
Published: 2022-03-15 14:08:21

 
Yeah! You might have been wondering which is better or preferrable, Figma or Adobe XD? Figma and Adobe XD are widely known as  software design tools used by designers and developers. These tools perform same tasks. In spite of that, some people tend to choose one over the other, perhaps due to their distinct features. 

Figma and Adobe XD are online  design tools usually used by developers and UI/UX designers in the tech industry. It’s a software tool widely used by UI designers to carry out their design work with the aid of unlimited plugins, design mockups, and design special features. 
Now, let’s check out the similarities and differences between the two. 

Figma and Adobe XD are design tools but Figma requires internet connection for its use While Adobe XD requires no internet connection. Hence, Adobe XD is cheaper for users to access 
Both tools have same features and components in common but different working interface. Figma has the specs embedded within the file, and offers different types of specs such as web, iOS & Android, while that of Adobe XD has separate spec sheets that you can easily publish as a link for people to access.
Figma has always been used on its main site i.e it’s cloud-based, so you’ll need to be connected to the internet to access it at figma.com. Until recently when the desktop and mobile application version was developed, it used to be only available for MacOS and Windows users. Adobe XD on the other hand does not necessarily  need internet connection  but has a desktop application.

As for me, Figma has been my best and regularly used tool for UI design. The simplicity and easiness are the uniqueness that make it my default tool — and guess what? — that is what larger percentage of UI/UX designers use as well. Its collaborative feature of team members to work together on a project without having to download the file is a great feature compared to Adobe XD that lacks collaboration. 

Another interesting feature about Figma is that, you do not always need to activate your internet connectivity while designing on it, meanwhile, not all the features can be used offline. All you need is put it on at first> save your project> deactivate the internet connection and keep on working. Whenever you are done, Figma will store any changes you make in your browser and sync them. When you’re back online, Figma will notify you at the bottom of your screen that your file has unsaved changes. In my coming posts, I will write on available features online and offline on Figma.  


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vspqigipwwqm67l2mkid.png)

 Figma has won in virtually all ranking features. In my own opinion,  I’ve found Figma a very easy and flexible tool to use than Adobe XD. Researching more about Figma collaboration community interests me more as a UI/UX designer. 
Thanks for reading. 
Photo credit: Pinterest, uxdesign.com
How to solve Procfile issue in heroku?
Tags: help, coding, programming, python
Published: 2022-03-15 14:00:41

Recently, I posted a blog in which I made a new bot and during the making of it faced an error which was being faced by many people, while deploying in Heroku, I got this error: procfile declares types -> (none)  

What it should be shown was procfile declares types -> (worker)
since my project was on python as worker

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o3vg7hwhpktei821ul03.png)

The code was correct, but then I realised that Procfile must be with no extension, here I was having it as a text document, so to solve this I made a new file in VS Code but didn't add any extension and wrote the same worker code. That worked! For those who don't use Vs code, there is another solution to create a file without extension!

1. Click on the Windows Search and type Notepad.
2. Select the Notepad app from the Search Results.
3. Write the information that you want.
4. Go to “File > Save.” Or simply press Ctrl + S keys.
5. Type the name of the file under inverted commas. Let’s say if you want to save the file with the name sample file, type “sample file” and click on the Save button. After that, Windows will save the file with no extension.
Refer https://www.thewindowsclub.com/create-a-file-without-extension-in-windows#:~:text=Go%20to%20%E2%80%9CFile%20%3E%20Save.,the%20file%20with%20no%20extension.  for more clarification.

A lot of people is being in the confusion about this problem, I hope this worked, Follow me if you find this useful.

Thank you😊
The industrial IoT is now the largest and fastest-growing technology sector for 5G developers
Tags: iot, programming, arvr, apps
Published: 2022-03-15 13:54:18

---
title: The industrial IoT is now the largest and fastest-growing technology sector for 5G developers
published: true
description: Industrial IoT (IIoT) and consumer electronics (CE) are also within the break-away group of technology sectors that 5G developers are rapidly entering.
tags: #IoT #programming #ARVR #apps
//cover_image: https://direct_url_to_image.jpg
---

Virtual reality (VR) and augmented reality (AR) are among the technology sectors in which we observe the highest proportion of developers working on 5G technologies. 
This is partly because the COVID-19 pandemic has dramatically extended our need for new ways for people to remain connected - augmented and virtual environments can play a significant role in this. 

In addition, the high bandwidth and low latency of 5G are helping to shape the future of AR/VR as a tool for real-time interaction at scale and providing new opportunities for improved direct-to-device streaming. 

![The industrial IoT is now the largest and fastest-growing technology sector for 5G developers](https://i.ibb.co/bPD6WLP/image.png)

Industrial IoT (IIoT) and consumer electronics (CE) are also within the break-away group of technology sectors that 5G developers are rapidly entering. Involvement in IIoT exhibits the fastest growth among those working in 5G - tied with machine learning/AI - since our survey in Q3 2020. In fact, IIoT has overtaken all other technology sectors as the area where we find most 5G developers. 

Source: [State of the Developer Nation 21st Edition](https://developernation.net)

Υou can contribute to our effort to understand what developers' needs are.
We are running a small, 5 minute survey for 3rd-party Platforms developers and your help would be highly appreciated.

**[Help us understand 3rd party apps devs](https://survey.developernation.net/name/dn22-comm?utm_medium=post&utm_source=reddit&utm_campaign=dev_to_comm3)**
C++ Error: Require a type specifier for all declarations
Tags: c, errors, typespecifier, declarationerror
Published: 2022-03-15 13:51:52

Problem:
Hi there! I am a newbie and started learning to program recently. While doing programming, as a beginner I encountered many errors but the most rapidly occurring error was “C++ requires a type specifier for all declarations”.
Although I managed to resolve the error every time,
I want to know why this error is generated and how can I avoid it?

Solution:
This error occurs when you do not specify the datatype of a variable or you forget to specify the return type of a method or a function. Specifying the datatype of variables or the return-type of methods is necessary for C++ because it is a statically-typed language.

Statically-typed languages are one that requires each and everything to be specified by the user. Before using a variable or assigning it a value, you must tell the compiler what would be the type of data that is going to be stored in that variable. Similarly, while declaring functions, you must specify what type of data that function is going to return.
A statically-typed language also requires you to declare and define the functions above the main() function or some other calling function.

Consider the following examples:

Note:

Both examples generate different errors due to above-mentioned reason:

//This code does not generate the same error, 
//but the error is caused due to the same reason
#include<iostream>
using namespace std;

int main()
{
      a = 4;     //data type not specified
}
.

//This program generates a different error due to the same reason.
#include<iostream>
using namespace std;

int main()
{
      int c = add();      //error: 'add()' was not declared in this scope
      cout<<c;
}

int add()
{
    return 3+4;
}
I hope this will help you
Thanks
Java: Find second largest number in an array using single loop
Tags: array, java, largestnumber, secondlargestnumber
Published: 2022-03-15 13:47:13


Hi there!
I have started learning java just recently and
I found a problem in a programming exercise in which I have to find the second largest number in a given array using programming. I know how to find the largest number,
but I am facing difficulty in making the logic for finding the second-largest number.

Can anybody here help me solve the problem?
Also, provide the example program so that I can understand it better. Thanks!

Solution:
Hello! The problem you have mentioned is very easy. All you need to do is,
after finding the largest number, apply another logic.

However, consider the following code snippet, which will solve your problem.

Please refer to the comments to better understand the code:

public class Main
{
public static void main(String[] args) {
int[] arr = {5,3,7,8,2,68,4,19};
int largest = 0, second_largest = 0;
for(int i = 0; i<arr.length; i++)
        {
           //this condition will keep evaluating unless i is less than the length of array or largest number is not found
            if(arr[i] > largest) //if(arr[i] > 0) 
            {
                second_largest = largest; //second_largest = 0
                largest = arr[i]; //assigning the largest element of array to 'largest' variable
            }
            else if(arr[i] > second_largest && arr[i] != largest)//if above condition is false, this will be evaluated in order to find the second largest number
            {

              second_largest = arr[i];
            }
         }
        System.out.println("Largest:" + largest + "\nSecond largest:" + second_largest);
}
}
Output:

Largest:68                                                                                                                    
Second largest:19      

                                                                                                   
I hope you found the answer you were looking for, Thanks!