teleren/devto huggingface dataset:
HybridDNS Implementation Between AWS and On-Premise Environment
Tags: cloudcomputing, aws, hybriddns, devops
Published: 2023-04-29 22:12:01

 
**How to Setup a Hybrid DNS between your On-Prem and AWS Environment**



![Hybrid DNS Architecture](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tyuckjzg215vcafe3bj8.png)

If you're looking for a way to set up a Hybrid DNS system that allows smooth DNS queries between your on-premise and AWS environments, you're in the right place.

I've created a Hybrid DNS setup using AWS resources, which simulates a real-world connection between AWS and an on-premise environment. I've also put together easy-to-follow steps so others who need this solution can benefit from it. This is your go-to guide for a user-friendly Hybrid DNS setup.

**1. Set up the lab environment:** A CloudFormation template is used here to create the infrastructure in AWS. CloudFormation is a service offered by AWS that enables users to define and provision the resources needed for applications across all regions and accounts. The template describes what resources are needed and AWS CloudFormation takes care of provisioning and configuring those resources. The mentioned resources here are EC2 instances, and Virtual Private Clouds (VPCs).

**2. Create VPC Peering connection:** VPC Peering is a networking connection between two VPCs that enables you to route traffic between them privately. In this case, it's used to connect the AWS VPC with the on-premises VPC. Once the peering connection is created, you add necessary routes to VPC route tables of each VPC to enable the connectivity.

**3. Test the connectivity:** You would then check the connectivity by pinging private IP addresses of servers from each environment (AWS and On-Premises). Pinging is a diagnostic tool to test connectivity between two nodes.

**4. Create Inbound Endpoints and Configure DNS servers:** To enable DNS resolving, inbound endpoints are created in AWS VPC. These endpoints act as targets for DNS queries. The on-premises DNS servers are then configured to forward all DNS queries to these inbound endpoints.

**5. Connect to App server and configure DNS server IP addresses:** The app server needs to know where to query for DNS entries, hence the IP addresses of the DNS servers are added in the app server.

**6. Create Outbound Endpoints:** In the AWS VPC, outbound endpoints are created. These endpoints are designed to forward any queries made to a certain domain (e.g., corp.aws) to the DNS servers in the on-premises VPC.  Forward rule has to be setup in Route53.

**7. Enable DNS querying across environments:** With the above steps, both on-premises clients and resources on AWS can query for DNS entries on each side, ensuring seamless communication across the hybrid environment.

Credits and special thanks to  Adrian Cantrill for creating this project, which is used quite often in production environments.
Asking the right questions — an underrated soft skill
Tags: product, development, programming, startup
Published: 2023-04-29 21:56:01

I recently completed 11 months at my first full-time job, as a Product Engineer at [Openhouse](https://openhouse.study/), an early-stage startup based in Bangalore. My day-to-day responsibilities include collaborating with the Product Managers, Engineering Manager, and other able members of the product team to discuss, and eventually solve problems and build new features. During my tenure, I have been fortunate to work with developers, professionals much senior to me in terms of experience, and with a vast intellect. If for me, there has been one key takeaway, it has been that **in order to solve a problem, you must first ask the right question(s)**.

It is parallel to what data scientists say — gathering data is never useful as long as you don’t know what questions to answer from it.

It is a skill that should come with time, and experience. However, perhaps a conscious effort of working on it may help exponentiate how well one can exercise it. It can contribute immensely to one’s problem solving skills.

We’ve been told as students to ask questions in the classroom, oft even prompted by professors to ask the same question repeatedly. Although, if the question is not comprehensive and well laid out, the person who asked may never receive a satisfactory answer.

In the workplace, I think it comes down to precision, effort, and resource management.

I believe the more comprehensive and precise you are with the details of your question, the words you use, and in the opposite scenario, your answer, the better you’ll convey your point and also set the right expectation. Simply asking someone can they deliver a certain task on a deadline, compared to asking them to provide an estimated number of hours, will help set the right expectations, and help others plan their tasks.

If you are a developer, asking the right questions can help you account for all kinds of impact to your code when you’re building a feature, or making a production level fix. Just asking how the introduction of a new feature may impact the old & existing users, or what happens to the existing flow, can save large amounts of unnecessary development time, and future code breaks.

Andy Hunt, in his book The Pragmatic Programmer, mentions the importance of Critical Thinking. He mentions 5 key tips to regulate critical thinking, which I feel can be applicable to developing the skill of asking the right questions I so mention:

- Ask a question, and get an answer. Dig deeper by asking “Why?” Repeat as if you were a petulant four-year-old (but a polite one). You might be able to get closer to a root cause this way.
- Who does this benefit?
- What’s the context?
- When or Where would this work?
- Why is this a problem?

As I mention above, it is a skill that should come with time, experience and repetition. You shouldn’t be afraid to ask many questions, it will slowly funnel you towards asking the required one.
스포츠중계
Published: 2023-04-29 21:50:44

종종 "스포츠 캐스팅"으로 축약되는 스포츠 방송은 미국과 전 세계 어디에서나 수백만 달러 규모의 산업입니다. 스포츠 방송은 매스 미디어, 가장 두드러지게 텔레비전 매체를 통해 행사와 사실을 전달하는 것입니다. 그러나 라디오와 인터넷 매체를 통해서도 가능합니다. 기본적으로 각종 매체를 통해 스포츠 관련 내용을 듣거나 살펴보거나 볼 때마다 스포츠 중계를 경험하고 있는 것이다. 스포츠 방송에 대해 더 공부하고 싶다면 이 매체 내 스포츠 조사를 통해 난이도에 대한 지식을 넓힐 수 있습니다.
**_[스포츠중계](https://coktv11.com/)_**
스포츠 방송의 역사
스포츠 방송이 존재하기 전에 인간은 그것을 어떤 식으로든 경험하기 위해 착용 이벤트에서 선물이 되어야 했습니다. 레크리에이션이나 몸매를 놓친 경우 무시하고 누군가가 당신에게 하이라이트를 말로 연결하는 것 외에는 현실 이후에 그것을 즐길 방법이 없습니다. 거의 모든 것이 기술의 사용을 통해 영구적이 될 수 있는 오늘날의 글로벌 환경에서 이러한 종류의 상황은 상상하기 어렵습니다. 그러나 스포츠 방송은 나르는 활동을 말로 다시 말하는 것에서 발전했고, 라디오에서 다시 말하게 되었고, 결국 텔레비전에서 다시 말하게 되었고, 오늘날 우리가 즐기는 스포츠 미디어의 폭발적인 내부에서 절정에 이르렀습니다.

오늘날 우리가 스포츠 중계로 인식하는 미국 최초의 기록된 예는 1911년 캔자스에서 사라졌습니다. 전신을 통해 이전 플레이에 대해 마스터한 사람들의 그룹을 사용하여 축구 게임의 플레이를 재현했습니다. 어떤 의미에서 이것은 모든 사람이 의심할 여지없이 참석하지 않고 '라이브' 스포츠 이벤트를 경험한 최초의 사례가 되었습니다. 착용 행사의 첫 번째 라디오 방송은 10년 후인 1921년 펜실베이니아주 피츠버그에서 발생했습니다. 이벤트는 복싱 슈트로 바뀌었습니다. 역사상 최초로 TV로 중계된 스포츠 경기는 1936년 하계 올림픽이었고, 미국에서 최초로 중계된 나르는 경기는 1939년에 일어났습니다. 이 경기는 컬럼비아 대학과 프린스턴 대학 간의 대학 야구 경기로 바뀌었습니다. 최초의 내셔널 풋볼 리그(NFL) TV 방송은 1939년에도 마찬가지로 브루클린 다저스가 필라델피아 이글스와 경기를 펼쳤을 때 일어났습니다. 휴대용 행사의 인구가 증가함에 따라 TV에서 게임을 보고 라디오에서 주의를 기울이려는 요구도 증가했습니다. 마찬가지로 스포츠 활동 방송의 증가는 미국 거주자들이 스포츠에 관심을 갖고 특정 팀과 비디오 게임을 시청하는 사람들의 양을 증가시켰습니다. 오늘날 전 세계적으로 ESPN으로 더 잘 알려진 엔터테인먼트 및 스포츠 프로그래밍 네트워크는 1979년에 완전히 스포츠 게임, 수트 및 관찰을 중심으로 하는 기본 케이블 채널로 설정되었습니다. 대부분의 사람들이 잘 알고 있듯이 스포츠 프로그램과 정보는 오늘날 라디오, 텔레비전, 인터넷, 심지어는 신문과 잡지를 통해 스포츠 수리를 받고자 하는지 여부에 관계없이 광범위하게 얻을 수 있습니다. 프로 운동선수들은 최근 영화배우와 같은 명성을 얻으며 모든 형태의 단체와 광고주의 지지를 받고 있습니다. 스포츠 활동 방송이 침투한 독특한 틈새 시장은 수백만 달러 규모의 비디오 게임 시장입니다. 고객이 전문 스포츠 게이머의 역할을 맡을 수 있는 게임은 지난 10~20년 동안 인지도가 급증했습니다.
Git cheat sheet
Tags: git, webdev, programming, opensource
Published: 2023-04-29 21:39:24


**Setting up Git** 
`git config --global user.name "Your Name"` : Set your Git username
`git config --global user.email "youremail@example.com"` : Set your Git email address
`git config --list` : List all Git configuration settings


**Creating a new repository**
`git init` : Create a new local repository
`git clone [url] `: Clone an existing repository from a remote source

**Adding and committing changes**
`git add [file]` : Add changes to the staging area
`git add .` : Add all changes to the staging area
`git commit -m "Commit message"` : Commit changes to the local repository with a message

**Working with branches**
`git branch `: List all branches
`git branch [branch-name] `: Create a new branch
`git checkout [branch-name] `: Switch to a specific branch
`git merge [branch-name]` : Merge changes from a specific branch into the current branch
`git push origin [branch-name]` : Push changes to a remote repository

**Working with remote repositories**
`git remote add origin [url]` : Add a remote repository
`git pull` : Fetch and merge changes from a remote repository
`git push` : Push changes to a remote repository
`git remote -v` : List all remote repositories

**Other helpful commands**
`git status `: Show the status of your repository
`git log` : Show the commit history of your repository
`git diff [file] `: Show the changes made to a specific file.

These are some of the most commonly used Git commands. I hope this cheat sheet helps you in your Git journey!
5 Reasons Why Infrastructure as Code (IaC)
Tags: aws, terraform, cloud, codenewbie
Published: 2023-04-29 21:11:26

In today's fast-paced and highly competitive world, businesses need to stay ahead of the curve to succeed. One way to do this is by leveraging the power of Infrastructure as Code (IaC) tools like Terraform to manage their cloud resources. Here are five reasons why IaC with Terraform is becoming increasingly popular in the industry:

Automation and Scalability: With Terraform, you can automate the provisioning and management of your infrastructure, making it easier to scale your resources up or down as needed. This means you can respond quickly to changing business requirements and avoid downtime.

Consistency and Standardization: By using Terraform to define your infrastructure as code, you can ensure that your resources are created and configured consistently and according to best practices. This reduces the risk of errors and makes it easier to maintain your infrastructure over time.

Collaboration and Visibility: Terraform allows multiple team members to work on the same infrastructure codebase simultaneously, facilitating collaboration and reducing the risk of conflicts. Additionally, Terraform's state file provides visibility into your infrastructure, making it easier to track changes and troubleshoot issues.

Portability and Multi-Cloud Support: Terraform supports a wide range of cloud providers and services, making it easy to move your infrastructure between different environments or cloud providers. This ensures that you can avoid vendor lock-in and maintain control over your resources.

Cost Optimization and Resource Utilization: Terraform provides visibility into the cost of your infrastructure resources, allowing you to optimize costs and eliminate wasteful spending. Additionally, Terraform's resource graph makes it easier to identify unused resources and delete them, improving resource utilization.

In conclusion, Infrastructure as Code (IaC) with Terraform is essential for modern businesses looking to stay competitive and agile in today's fast-paced world. By leveraging the benefits of automation, consistency, collaboration, portability, and cost optimization, businesses can create and manage their cloud resources more efficiently and effectively than ever before.
AGE Viewer Installation Guide
Tags: postgres, agedb, database, apache
Published: 2023-04-29 21:10:07

Age-viewer is a web app that allows the user to visualize data stored in your graph database.

## Solving Dependencies
The pre-requisites to run the web app are nodejs and npm.

```
sudo apt install nodejs npm
or
# recommended
nvm install 14.16.0
```

## Downloading and Cloning
After installing the necessary dependencies, we need to download and clone Age-viewer.

```
git clone https://github.com/apache/age-viewer.git
```

## Kickstart AGE-Viewer
Start the Age-viewer directory set up the environment using the following command:

```
cd age-viewer
npm run setup
npm run start
```

Viewer will now be running on the localhost. Now connect the viewer with the database server. Enter the details required to login.

```
# address (default : localhost)
url: server_url;

# port_num (default 5432)
port: port_num;

# username for the database
username: username;

# password for the user
pass: password;

# database name you wanna connect to
dbname: demodb;
```
AGE-Viewer is good to go.
Virtual Mail Now - Virtual Address & Mailbox Service
Tags: mailing, scan
Published: 2023-04-29 20:46:46

Whether you need a mailing address for yourself or your business, Virtual Mail Now has you covered. Our service allows you to access any mail you receive at your virtual address online, from any device, within minutes of delivery. Take the hassle out of managing your mail and enjoy the freedom of location-independence.

[https://virtualmailnow.com](https://virtualmailnow.com)
Simple IT: Set Up and Ongoing Maintenance of Zero Assumptions
Tags: rust, zeroassumptions, zerotrust, networking
Published: 2023-04-29 20:35:47

Zero Assumptions is easy to set up and easy to maintain. A very small team or even a single person is enough to get Zero Assumptions up and running. The benefit with our solution is that the cost is very low - and we've considered the in-house costs beyond the payment for our product. It's low cost because it won't take a whole team to maintain.

Think of Zero Assumptions as barely perceptibly, and immensely impactful. You likely already have someone on staff who can set up and maintain it. This minimally invasive monitoring tool can be launched in a day given that servers are ready to funnel information through.

## Quick Set Up

Zero Assumptions can be installed onto your own company server in less than 5 minutes using our [installation instructions](https://docs.zeroassumptions.dev/docs/installation). 

After installation, the [configuration file](https://docs.zeroassumptions.dev/docs/configuration) is created with all of the settings that the company will use. Alternatively, we offer many settings to be modified via the UI. 

Configuration enables the control plane to start, and sets the following:
* Server locations
* User authentication
* Email settings for password recovery and user invitations

## Easy Ongoing Maintenance

Zero Assumptions [ongoing maintenance](https://docs.zeroassumptions.dev/docs/ongoing-management) is minimal. 

Maintainers control the following: users, devices, groups, resources, nodes, and audit log access.

If maintainers want to go a step further, they can also automate the above controls. 

## Stay Connected to Zero Assumptions

Follow us here on DEV, [Twitter](https://twitter.com/ZeroAssumptions), and [LinkedIn](https://www.linkedin.com/company/zero-assumptions). 

Read more about [Zero Assumptions](https://zeroassumptions.dev/).
More on AGE with PostgreSQL
Tags: postgres, apache, age
Published: 2023-04-29 20:24:55

## Initialization of Database

The database cluster is initialized

```

cd postgresql-11.18/
bin/initdb demo

```
## Kickstarting the server

Make a database named dbyo

```

bin/pg_ctl -D demo -l logfile start
bin/createdb dbyo

```
The files and the database can now be seen in your terminal.

## Start Querying
AGE has been added to pg. You can connect to the database and start exploring it.

```

bin/psql dbyo

```
AGE extension is loaded in order to start using it.

```
CREATE EXTENSION age;
LOAD 'age';
SET search_path = ag_catalog, "$user", public;
```

Queries with Cypher commands can be run like creating a graph, adding a node to it, and then displaying the node.

```
SELECT create_graph('demo_graph');
SELECT * FROM cypher('demo_graph', $$ CREATE (n:Person {name : "james", bornIn : "US"}) $$) AS (a agtype);
SELECT * FROM cypher('demo_graph', $$ MATCH (v) RETURN v $$) as (v agtype);
```
In AWS EBS we use Recycle bin for ?
Tags: aws, cloud, storage, devops
Published: 2023-04-29 20:16:18

AWS Elastic Block Store (EBS) is a fully managed block storage service that provides persistent block-level storage volumes for use with Amazon EC2 instances in the AWS Cloud. AWS EBS is designed to be highly available and reliable, with automatic replication across multiple physical devices to protect against data loss.

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


One of the features of AWS EBS is the ability to use a recycle bin, which is essentially a safety net for your data in case of accidental deletion or other data loss events. When you delete an EBS volume, it is not immediately deleted from your account but instead, it is moved to a recycle bin where it is retained for a certain period of time, usually 30 days by default.

The recycle bin in AWS EBS provides several benefits for customers, including:


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/utbmwm8ew2wqwnpwlknx.png)
Protection against accidental deletion: The recycle bin provides an extra layer of protection against accidental deletion of EBS volumes, ensuring that data is not lost forever. In case a user deletes an EBS volume by mistake, they can easily recover it from the recycle bin within the retention period.

Flexibility in managing EBS volumes: The recycle bin provides users with more flexibility in managing their EBS volumes. It allows them to delete volumes without the fear of losing data permanently. Users can restore any volume that was deleted within the retention period, which is particularly useful when testing new configurations or setting up temporary environments.


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


Cost optimization: The recycle bin helps optimize costs by reducing the need for backup and recovery infrastructure. By enabling the recycle bin, users can restore their EBS volumes without the need for additional backup and recovery infrastructure.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ac2x6x3b45d931d9ibpr.png)
Enabling the recycle bin in AWS EBS is a simple process that involves a few clicks in the AWS Management Console. Once enabled, the recycle bin retains all deleted EBS volumes for the specified retention period. During this period, users can restore their EBS volumes from the recycle bin using the AWS Management Console, CLI or API.

In conclusion, the recycle bin in AWS EBS is a powerful feature that provides an extra layer of protection against accidental deletion of EBS volumes, ensures flexibility in managing EBS volumes, and optimizes costs by reducing the need for backup and recovery infrastructure. By enabling the recycle bin, users can rest assured that their data is protected and recoverable in case of data loss events.
Use This Script to Separate The First and Last Names in Spreadsheets?
Tags: googleappsscript, googlesheets, automation, spreadsheets
Published: 2023-04-29 20:15:00

Would you like to separate the column in your spreadsheet that consists of the full names of people into first and last names? Well then stick this very simple script to your spreadsheets apps script editor and you'll be able to do just that.

## Split The Selected Column

The following [bound](https://developers.google.com/apps-script/guides/bound) script will do three things:

1. Create a custom menu in your spreadsheets tabs with the title Custom Menu.

2. After you call select the custom menu, It will check the cell you've selected to split into. The script won't work if you don't select a cell in the right column.

3. Separate the whole column into two columns, with the first value in the first column and the second(& rest if there are any) in the new column.

```
function splitName() {
  // get sheet and data
  const sheet = SpreadsheetApp.getActiveSheet();
  // get selected row
  const activeColIndex = sheet.getActiveRange().getColumn();

  const data = sheet.getDataRange().getValues();
  const lastRow = data.length;

  sheet.getRange(1,activeColIndex,lastRow,1).splitTextToColumns();

}

// if you're new and only want this feature the use this code
/**
 * OnOpen trigger that creates menu
 * @param {Dictionary} e
 */
function onOpen(e) {
  createCustomMenu();
}

/**
 * Menu creates menu UI in spreadsheet.
 */
function createCustomMenu() {
  let menu = SpreadsheetApp.getUi().createMenu("Custom Menu"); // Or DocumentApp or SlidesApp or FormApp.

  menu.addItem("Split Names", "splitName");
  menu.addToUi();
}

/**
 * Code By Nibesh Khadka.
 * I am freelance and Google Workspace Automation Expert.
 * You can find me in:
 * https://linkedin.com/in/nibesh-khadka
 * https://nibeshkhadka.com
 * me@nibeshkhadka.com
 */

```
### How To Add Apps Script Code To a Spreadsheet?

If you don't know how to add this script to your sheet then, then just click the Extensions tab and then Apps Script as shown in the image below.

![Open Scrpit Editor](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p3pqipnkw8dr7aze4155.png)

Now, similar to the previous [blogs](https://dev.to/kcl/series/19218), you can now just:

1. Save the code.

2. Reload the document. Where you'll see the custom menu as shown below

3. And execute the function.

### Executing The Function

Here are a few images to guide what the operation will look like in your docs.

![Custom Menu](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ggpeq29lre1s58cv2pfc.png)



![Before and After Name Split](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2fikqnusvmb2on72wvok.png)


## Thank You for Your Time

My name is Nibesh Khadka, and as a freelance automation expert, I specialize in automating Google products with Apps Script. So let's get started! If you need my services let me [know](https://nibeshkhadka.com/contact/).

Don’t forget to like and share this blog.


![Like, Share and Follow Khadka's Coding Lounge](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/s3za0u95xedbxtn1ll4n.png)