OpenVPN With Radius and Multi-Factor Authentication

Setting up a VPN server to allow remote connections can be challenging if you set this up for the first time. In this post, I will guide you through the steps to set up your own VPN Server and connect to it using a VPN Client.

Additionally, I will also show how to set up a free Radius server and a plugin to implement multi-factor authentication for additional security.

Integrate AWS Secrets Manager in Spring Boot Application

Introduction

In this article, we will understand the integration of AWS Secrets Manager in the Spring Boot Application. This service will load the secrets at runtime and make sure to keep the sensitive information away from the code.

Context

When we work on a Spring Boot Application, we have an application.properties file based on the different profiles (environment). In these files, we keep all the information related to the configuration of the Spring Boot application. The file contains database credentials and other sensitive information like any credentials or ftp server's endpoint along with credentials. This sensitive information is not recommended to be put directly into the code for security concerns. To avoid such vulnerabilities in our application, we have to take several measures in order to ensure the security of sensitive information.

Master C# Arrays: The Basics

C# Arrays tutorial has related videos. Watch this C# arrays tutorial with both related videos and written material for a step-by-step explanation with code examples. Videos will reduce your learning curve and deepen your understanding where you’re uncertain.

What Is an Array?

An array is a data structure that stores multiple values of the same type in a single variable. You access each individual value through an integer index with an array name. Arrays can be of different dimensions like single-dimension, multi-dimension, or jagged array. The simplest of all is the single dimension, so you’ll start learning how to declare, initialize, and use a single-dimensional array.

19 Most Common OpenSSL Commands for 2023

What Is OpenSSL Command?

OpenSSL is an open-source-based implementation of the SSL protocol, with versions available for Windows, Linux, and Mac OS X. It is a highly versatile tool used to create CSRs (Certificate Signing Requests) and Private Keys as well as compare an MD5 hash of different certificates or private keys; verify installed certificates on any website; and convert certificates into other formats. The most common OpenSSL commands are generating Certificate Signing Requests, verifying that a certificate is installed correctly on a website, comparing the MD5 hash of a certificate or private key with other versions, and converting certificates from one format to another.

The Most Common OpenSSL Commands

In this blog, we have mentioned some common OpenSSL commands used for different SSL management purposes. OpenSSL provides a wide range of options and parameters for each command, allowing users to manage their SSL infrastructure and fix their queries in no time.

Monitoring Linux OS Using Open Source Real-Time Monitoring HertzBeat

Introduction to HertzBeat

HertzBeat is an open source, easy-to-use and friendly real-time monitoring system that does not require Agent and has powerful custom monitoring capabilities.

  • Integrate monitoring-alarm-notification, support monitoring of application services, databases, operating systems, middleware, cloud-native, etc., threshold alarms, and alarm notifications (email WeChat Dingding Feishu SMS Slack Discord Telegram).
  • It configurable protocol specifications such as Http, Jmx, Ssh, Snmp, Jdbc, etc. You only need to configure YML to use these protocols to customize and collect any indicators you want to collect. Do you believe that you can immediately adapt to a new monitoring type, such as K8s or Docker, just by configuring YML?
  • HertzBeat's powerful customization, multi-type support, easy expansion, and low coupling hope to help developers and small and medium teams quickly build their own monitoring systems.

Github: https://github.com/dromara/hertzbeat

Tracking Software Architecture Decisions

Maybe this sounds familiar to you: joining a new software engineering company or moving from your current team to a different team and being asked to keep evolving an existing product. You realized that this solution is using an uncommon architectural pattern in your organization. Let’s say it is applying event sourcing for persisting the state of the domain aggregates. If you like event sourcing; but do not like it for the specific nature of the product, most likely, it wouldn’t have been your first choice. As a software architect, you start to find the rationale behind that solution, find documentation with no success, and ask the software engineers that do not have the answer you were looking for.

This situation might have a relevant negative impact. Software architectural decisions are key and drive the overall design of the solution, impacting maintainability, performance, security, and many other “-alities.” There is no perfect software architecture decision designing architectures is all about trade-offs, understanding their implications, sharing their impacts with the stakeholders, and having mitigations to live with them.

How to Change Your Domain Name in 8 Simple Steps

The best domain registrar service for most people is GoDaddy. You can get started for as low as $0.01 now. 

There are a lot of reasons you might change your domain name, including rebranding a business, resolving a copyright complaint, or changing industries. Whatever the reason, it can be hard to migrate sites and set up your new domain without losing your web data or customer base. 

In this guide, I’ll walk through the steps you should take to make your domain name change as painless as possible and how to avoid losing your site in the process and starting again from scratch. 

Quicksprout's how to change your domain name in 8 simple steps.

The 7 Best Domain Registrars For Changing a Domain Name

When changing your domain name, you’ll need to use a reliable domain registrar to find and buy your new domain. These are our favorites based on hours of research and testing: 

  • GoDaddy — Best for domain protection and privacy
  • Hostinger — Best for bundling domain registration and web hosting
  • Porkbun — Best for creative domain extensions
  • Domain.com — Best for fast and simple domain purchasing
  • Network Solutions — Best for long-term domain registrations
  • Namecheap — Best for affordable domain registration
  • NameSilo — Best for buying domains in bulk

Read our guide to the seven best domain registrars for a full review of what we loved about each one. 

Change Your Domain Name in 8 Easy Steps

Changing your domain name can feel overwhelming, but with the right steps and tools, it’s actually a lot easier than most people expect it to be. Here’re the eight steps I’ll be breaking down in this guide: 

  1. Check The Domain Change Rules For Your Host Provider
  2. Backup Your Current Site
  3. Choose A New Domain Name
  4. Purchase Your New Domain Name
  5. Set Up Migration
  6. Set Up Redirects
  7. Update Google Tools
  8. Contact Any Customers Or Clients Via Email

When you change your domain name, you’ll probably want to use whichever host you’re already working with, but for the purposes of this guide, we’ll be using GoDaddy. GoDaddy is one of the most popular and trusted domain registrars, and it’s straightforward to access new domains and change your domain name. You can get started for just $0.01.

Step 1: Check The Domain Change Rules For Your Host Provider

The first thing you’ll want to do when you’re getting ready to change your domain name is to check the specific rules for your host provider about domains. 

Every host will have different regulations about changing your domain and which processes you need to use, especially when transferring a domain or adding a second domain. 

It’s worth mentioning here that when talking about “changing” a domain, we’re really talking about migrating a site by purchasing a new domain and using that to replace your primary domain. There’s no real way to “change” a domain that’s not expired, so you’ll have to buy a new domain and keep the old one until it expires or sell it. 

Depending on who your host provider is and your plan with them, you may be able to add websites to your account for free, like if you’re using GoDaddy’s deluxe plan. If not, then you’ll have to buy another domain and either upgrade your account or set up hosting with another company. 

A screenshot of GoDaddy's website hosting plans.
GoDaddy comes with a range of plans, including a deluxe plan that allows you to host up to 10 sites at the same time.

Step 2: Backup Your Current Site

Before you can buy a new domain or migrate your content, you need to back up your site. This is very important because many things can go wrong when migrating sites, and having to set up your site all over again will set you back hours or even weeks. 

Again, whichever hosting provider you use will have different ways of doing this, but most offer an easy download option for backing up your site and saving it to both the cloud and a device. For example, GoDaddy has a built-in tool to back up your site directly to your account. 

You can also use a backup plugin, like Updraft Plus or All In One WordPress Migration, to make a copy of your site and download it to an external source, like your computer or dropbox. This is a better option if you are moving to a new host provider and changing your domain name. If you’re staying with the same host (for example, you’re migrating your site from your main domain to a new domain in GoDaddy), you don’t have to worry about this as much. 

A screenshot of the UpdraftPlus Backup/Restore plugin screen with a red arrow pointing to the backup now button.
Updraft Plus is a backup tool that lets you create a copy of your site so you can restore it if you have technical difficulties.

I recommend backing your site up in multiple locations, like your computer and a cloud tool, so you’ll have the peace of mind that your site is safe. It will also make the process of changing a domain name much faster and easier instead of feeling like you’re launching a new site from scratch again. 

Step 3: Choose A New Domain Name

Before you can change your domain name, you need to choose the new domain you’ll be sending traffic to.  

This is the easy part because if you’re thinking about changing your domain name, you probably already have a new one in mind. When you are choosing a new name, it’s important to consider the same things you would when purchasing your first domain, like: 

  • Availability: You can use a tool like GoDaddy’s domain name search bar to see if your domain is available for purchase 
  • Originality: Is it close enough to someone else’s business name, domain, or social media that you could risk being accused of copyright infringement?
  • Relevance: Is your domain relevant to your business? Is it recognizable as being related to your brand and memorable for customers?
  • Accessibility: Is your domain easy to spell? Is it short and easy for anyone to type?

Although this is an easy step, I want to stress how important it is to get this right. You don’t want to spend money on a new domain and go through the process of changing your brand’s name, only to have to do it all again in a few months. Take your time with this step and make sure that if you’re going to change your domain name, it’s worth it. You can then look for your domain using GoDaddy’s domain search tool. 

A screenshot of the GoDaddy homepage with a red arrow pointing to the search box.
GoDaddy has a useful free tool for searching for available domains right from your dashboard.

Step 4: Purchase Your New Domain Name

Once you’ve chosen your domain name, you can purchase it. You can do this in three main ways, although the last is a little more complicated than the other. 

If you’re using GoDaddy and have a plan that supports multiple sites, the easiest way is to purchase your domain directly as you set up your new site. To do this, go to your GoDaddy product page. Click on Websites + Marketing and select Manage next to your website. Then, click Edit Website to access your site builder and select Settings, and click Manage next to your domain name. You’ll then see the option to Get a New Domain. From here, you’ll be able to purchase your new domain name from GoDaddy and connect it to your site directly. 

A screenshot of search results for test domain.com on GoDaddy.
You can buy domains directly through you GoDaddy dashboard.

The second option is to purchase your new domain name through your current host provider as a second domain. For example, with the GoDaddy Deluxe plan, you can simply set up a second site and buy a new domain within one account. 

The third option is to set up your domain with a new hosting provider. This is more expensive and will make migrating your site more difficult, but it might make sense for you if you want to move hosts for financial or technical reasons. When you sign up for a new hosting plan, you’ll probably get a free domain included in your plan, so you can make your new domain name your main one. 

Step 5: Set Up Migration

Once you’ve purchased your new domain name and have it set up as a secondary or main domain, you need to migrate your old site to the new domain. 

If you are using a secondary domain, this is pretty easy. With GoDaddy, you only need to go to your GoDaddy product page. From there, go to Websites + Marketing, then click on Manage next to your website to access your site. 

Then choose Edit Website to open your website builder, and click Select Settings. Then, click on Manage next to your domain name. Select I Already Own The Domain. Then click on Choose a Domain and select the new domain you’ve added to your account. Once you’ve checked that you’ve selected the correct domain, click save and publish. 

If, for any reason, something goes wrong, or if you are moving to a new hosting provider entirely, you might want to migrate your site manually using a plugin. For this, you must first check that your website DNS (found in your settings under your hosting account) is updated to your new site. 

A screenshot of the GoDaddy domain manager dashboard screen with red arrows pointing out "my domains" and example domains owned by the account.
You can change your domain directly through your GoDaddy dashboard in a just a few simple steps.

Then, you can import your website backup to your new site. Make sure you have created a basic new site first (using a template theme, for example) before uploading your site backup and importing your old content using your downloaded files and the instructions from your plugin. 

Both these options can take a couple of days to kick in, so be patient if your hosting provider takes a little time to update these changes and reflect them on your new site. This is why it’s a good idea to keep your old domain active for a few days while you complete the necessary changes to your new site. 

Step 6: Set Up Redirects

Once you’ve set up your domain name and the accompanying site, you need to ensure all your old URLs redirect traffic to your new site. You can do this easily from your domain dashboard on your hosting site. 

A screenshot of the additional setting screen in a GoDaddy account with a red arrow pointing to the manage DNS feature.
You can set up domain forwarding from within your GoDaddy dashboard by changing the DNS settings.

In GoDaddy, you just need to go to Account Settings and go into your domains. From there, choose the domain that you will be forwarding (your old domain) and click Manage DNS. If you scroll down this page, you’ll see a section that says Forwarding. From here, you can set up forwarding for both your domain and subdomains. 

A screenshot of GoDaddy's domain forwarding feature with red arrow pointing to "add forwarding".
You can set up domain forwarding from within your GoDaddy dashboard by adding 301 or 302 redirect forwarding links.

After choosing Forward Domain next to your old domain, you can add your new domain name URL and choose a type of redirect link. You can choose between a 301 or a 302 redirect. Although they both work, I’d recommend using a 301 permanent redirect as it’s faster and preserves the most SEO value generated by your original site.

A screenshot of GoDaddy's domain forwarding feature with a red arrow pointing at the forward setting, "permanent (301)".
Adding a 301 redirect link will preserve your SEO and help your website visitors find your new site.

By setting up redirects, you’ll minimize your chances of losing traffic and make it easier for both new and old site visitors to find your new domain.  

Step 7: Update Google Tools

Once your new domain name is set up, you need to update Google Console and Google Analytics. 

For Google Console, you only need to log in to your account and select the gear icon. This will take you to your Settings, where you’ll select Change of Address. Then, add your new domain, and Google can send redirects to your new site. 

With Google Analytics, you just need to go to Admin, choose the property you want to edit (in this case, your old domain), and then edit the default URL to your new one. 

Step 8: Contact Any Customers Or Clients Via Email

The last step for changing your domain name is to let your users, customers, or audience know that you’ve changed your domain name. 

This is optional, but if you have a blog or an online store, it’s a good idea to reduce the amount of traffic you’ll lose from your domain change and make sure that people know it’s happening. 

All you need to do is send out a short announcement via social media or email, letting your audience know that you’ve changed the domain name and rebranded your site. A smart move here is to invite them to visit or bookmark the new site to improve your SEO and get your traffic numbers up from the start. 

Final Thoughts About Changing Your Domain Name

Changing your domain name is a necessary but daunting process. Getting it wrong can waste a lot of your time, but by following this simple step-by-step guide, you can see how easy it is to change your domain name without losing traffic or customers along the way.

Old School or Still Cool? Top Reasons To Choose ETL Over ELT

Cases Where ETL Still Bosses Over ELT

In the past few years, ELT has become very popular, mostly because more people are using big data and cloud-based solutions. ELT does have some benefits, but it may not be the best choice for all uses.

In some situations, ETL may be a better and more efficient choice. In this article, we’ll look at the situations where ETL is still better than ELT. We will talk about situations where ETL is the best choice because of the complexity of the data transformations, the size of the data, and the need for data quality and consistency. By the end of this article, you’ll have a better idea of when ETL is better than ELT for integrating data.

Newly graduated CS major facing adversity in finding employment

Uh. Hi! I am sort of new here. I post maybe once in a blue moon. This place is honestly 100x better than StackOverflow.

Anyway. I won't post my entire resume here but I will post relevant details. Graduated two years ago, currently underemployed, but happy. No internships.

My first real concern is... are the skills on it too granular? I've listed experience with use cases, UML and sequence diagramming...and while studying SWE UML online (today) to fill in gaps in my knowledge I've come to learn that use case and sequence diagramming are subsets of UML. Plus I learned that there's some large gaps in my knowledge. To my defense, some of these were never covered in my university classes.

Excerpt from my resume regarding skills in SWE:

Software Engineering: Learned about agile software development, practiced functional/non-functional requirements, use cases, unit/integration/regression automated software testing, and object oriented design, UML & sequence diagramming.

I will follow up here if I have more questions or concerns.

How to enable gpedit on Windows 10 & 11

I recently fell victim to the latest Windows 11 update - KB5023706. The symptom was intermittent BSODs (blue screen of death). It wasn't until after I had done a thorough slate of hardware and system diagnostics that I came across an online tech article explaining the problem's likely origin. After I uninstalled the update and rebooted, Windows Update merrily downloaded and installed it again. Microsoft Tech Support was almost helpful in telling me to switch to a metered wifi connection and pausing updates. Their update hide/show tool refused to let me hide KB5023706 so they suggested I disable updates in the interim using the group policy editor (gpedit.msc) which they should have known has not been available on Windows Home systems for many years.

However, even though gpedit.msc does not come enabled with Windows x Home, it still actually comes bundled, but disabled. If you want to enable access to gpedit.msc, save the following script to enable-gpedit.bat and run it from an admin shell. Once you do that, and reboot, you can run it from the command line or the menu run command by typing gpedit.msc

@echo off 

pushd "%~dp0"

:: Enables gpedit.msc for Windows Home systems
::
:: Must be run from an admin shell

dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientExtensions-Package~3*.mum >List.txt
dir /b %SystemRoot%\servicing\Packages\Microsoft-Windows-GroupPolicy-ClientTools-Package~3*.mum >>List.txt
for /f %%i in ('findstr /i . List.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

You can disable updates by navigating to

Local Computer Policy   
    Computer Configuration
        Administrative Templates
            Windows Components
                Windows Update
                    Manage end user experience

Double-click the Configure Automatic Updates policy on the right side.
Select the Disabled option.

Windows Update should now be paused until you manually re-enable it.

There are a ton of other settings (change at your own risk) that can otherwise only be modified by editing the registry. I've checked that this works on both Windows 10 Home and Windows 11 Home.

How To Select Multiple Checkboxes in Selenium WebDriver Using Java

Have you ever wondered how frustrating it would be if you had to log in each time you wanted to view your Facebook profile? Or in a multiple-choice question where you’d like to mark many options but can’t? Or do you have to enter your card information each time you make a payment since you can’t save it?

These are only a few of the numerous instances on web pages where quick functionality might be useful. Stay logged in for a while, save card details, and much more with a simple click. Basically, it’s a technique to turn things on and off while allowing for multi-selection.

Unity and the Future of Game Development

Since its launch in 2005, Unity has become one of the most widely used game engines in the world, powering games on a wide range of platforms from consoles and PCs to mobile devices and web browsers. The engine's user-friendly interface, robust feature set, and flexible licensing options have made it a go-to tool for developers of all sizes, from indie studios to large AAA game companies.

But Unity's impact on the game development industry goes beyond just providing a powerful tool for making games. The engine has transformed the way developers approach game development, offering a more streamlined, efficient, and collaborative workflow. With Unity, developers can create games faster, iterate more quickly, and focus more on the creative aspects of game design rather than the technical details.

Intro to Graph and Native Graph Databases

Legacy databases — or relational databases, aka RDBMS — were built for well-mapped, stable, and predictable processes like finance and accounting. These databases use rigid rows, columns, and tables that don’t require frequent modifications, but when the database model does need to change, it’s a big and expensive undertaking. 

Today, when building software applications, business and user requirements change often. Yet, most legacy database software fights against these changes rather than evolving with them.

Specification by Example Is Not a Test Framework

In this article, I will look at Specification by Example (SBE) as explained in Gojko Adzic’s book of the same name. It’s a collaborative effort between developers and non-developers to arrive at textual specifications that are coupled to automatic tests. You may also have heard of it as behaviour-driven development or executable specifications. These are not synonymous concepts, but they do overlap.

It's a common experience in any large, complex project. Crucial features do not behave as intended. Something was lost in the translation between intention and implementation, i.e., business and development. Inevitably we find that we haven’t built quite the right thing. Why wasn’t this caught during testing? Obviously, we’re not testing enough, or the wrong things. Can we make our tests more insightful?

Strategies for Kubernetes Cluster Administrators: Understanding Pod Scheduling

Kubernetes has revolutionized container orchestration, allowing developers to deploy and manage applications at scale. However, as the complexity of a Kubernetes cluster grows, managing resources such as CPU and memory becomes more challenging. Efficient pod scheduling is critical to ensure optimal resource utilization and enable a stable and responsive environment for applications to run in. 

As a Kubernetes cluster administrator, understanding the nuances of pod scheduling is essential to maximize your cluster’s performance. In this guide, we will explore the strategies for managing pod scheduling in Kubernetes, from the basics to more advanced techniques. We will delve into the intricacies of pod scheduling, including how to optimize resource allocation, how to balance workloads, and how to manage node selectors and affinity rules. 

HTTP vs Messaging for Microservices Communications

Microservices architecture has gained popularity recently as a technique for creating sophisticated and scalable software systems. Microservices are scalable, independently deployable services that talk to one another across a network.

Making it easier for these services to communicate with one another is one of the major problems with a microservices design. HTTP and messaging are two popular methods for microservices communication.

Use AWS Controllers for Kubernetes To Deploy a Serverless Data Processing Solution With SQS, Lambda, and DynamoDB

In this blog post, you will be using AWS Controllers for Kubernetes on an Amazon EKS cluster to put together a solution wherein data from an Amazon SQS queue is processed by an AWS Lambda function and persisted to a DynamoDB table.

AWS Controllers for Kubernetes (also known as ACK) leverage Kubernetes Custom Resource and Custom Resource Definitions and give you the ability to manage and use AWS services directly from Kubernetes without needing to define resources outside of the cluster. The idea behind ACK is to enable Kubernetes users to describe the desired state of AWS resources using the Kubernetes API and configuration language. ACK will then take care of provisioning and managing the AWS resources to match the desired state. This is achieved by using Service controllers that are responsible for managing the lifecycle of a particular AWS service. Each ACK service controller is packaged into a separate container image that is published in a public repository corresponding to an individual ACK service controller.

Chris’ Corner: Websites, Highlights, and Guesses

I love Henry’s guide: How to Make a Website.

There is precious little recent instructional material on how you can build a website, a perfectly great website, using just the raw materials of the web. Raw HTML & CSS, as it were. But that’s not all that Henry’s guide is about. It’s full of holistic advice going well beyond web design:

Be kind and curious and humble when you’re working with folks, and be extra forgiving of their mistakes, so when the time inevitably comes that you make your own, there’s perhaps some goodwill in the vault for you.

 🙏

I do suspect if it’s not just lack of awareness that you can build a website with just hand-written raw HTML and CSS, but more of a then what? situation. Of course, we’re hoping CodePen is a place where that is a good option and are working to make that better every day. But there are plenty of options for getting that locally crafted HTML website to a real website, like Vercel, Netlify, GitHub pages, etc, which all make it pretty decently easy. It would be unfortunate if the DevOps knowledge for getting websites to production is just as much knowledge as actually making websites.

Oh hey this makes me think of a great term thrown out by Robb Owen: Hand-thrown frontends. He compares the website-making process to the ceramics process of making a bowl out of clay.

So, for me, the frontend bowl-making process is a cyclical, non-linear one. On a surface-level it probably doesn’t seem like it’s as efficient as assembling Lego bricks to order, but over time you’ll make more bowls and each phase of iteration will gradually shorten as your skill increases towards mastery.

I’m a sucker for a good ceramics analogy as that’s what my Bachelor of Arts was focused on in college.

Oh! And speaking of Ceramics, have you seen Charlotte Dann’s Ceramics project? It’s probably my favorite generative art project I’ve ever seen. This surface is totally code-generated:

Might as well be a photograph of real carved, glazed clay.

Oooooo tricky CSS challenge! Skewed Highlights. Vadim Makeev did up good:

You’d think transform: skew() would be involved somehow, but there isn’t a great opportunity for that, especially with arbitrary line breaks and such. Instead, the backgrounds are created with multiple gradient backgrounds (super clever) and fortunately box-decoration-break: clone; makes it look reasonable across lines.


Musing about slight alterations in CSS selector structure and how it affects selections? Sign me up for that party! Bramus compares:

.a .b .c { }
/* Versus! */
.a :is(.b .c) { }

They do look and behave similarly, but the former enforces that “c is a child of b is a child of a” situation solidly, while the latter allows for a situation where c is a child of a which is a child of b. That’s way too hard to understand in words, so here’s an image:

Admittedly I don’t reach for :is() all that much, but I suspect usage might go up a bit now that native CSS nesting is here and that all nested selectors must start with a symbol. So a quick way around wanting to nest element selector is wanking it in an :is():

header {
  h1 { } /* nope */
}

header {
  :is(h1) { } /* yup */
}

Let’s end with a little collection of developers looking forward to upcoming tech trends. This is, of course, popular in January and it’s March now but gimme a break I’m a little slow sometimes.

The post Chris’ Corner: Websites, Highlights, and Guesses appeared first on CodePen Blog.