DZone.com Feed

DZone.com Feed


6 Efficient Things You Can Do to Refactor a C++ Project

Posted: 02 Sep 2020 06:54 PM PDT

I took my old pet project from 2006, experimented, refactored it, and made it more "modern C++". Here are my lessons and six practical steps that you can apply to your projects.

Let's start.

Hasura GraphQL Remote JOINs on Distributed SQL Running on AKS and GKE

Posted: 02 Sep 2020 06:35 PM PDT

Remote Joins in Hasura GraphQL extend the concept of joining data across tables, to being able to join data across tables and remote data sources. In this blog post, we are going to demonstrate this capability by configuring the following set up.

  • A 3 node YugabyteDB cluster running on GKE with a Hasura GraphQL Engine attached
  • A 3 node YugabyteDB cluster running on AKS with a Hasura GraphQL Engine attached
  • A Remote Schema and Remote Relationship configured
  • The ability to issue GraphQL queries that join data from two different databases, hosted in two different clouds, into a single result set

remote-graphql1

4 Steps to Building a Video Search System

Posted: 02 Sep 2020 06:19 PM PDT

As its name suggests, searching for videos by image is the process of retrieving from the repository videos containing similar frames to the input image. One of the key steps is to turn videos into embeddings, which is to say, extract the key frames and convert their features to vectors. Now, some curious readers might wonder what the difference is between searching for video by image and searching for an image by image? In fact, searching for the key frames in videos is equivalent to searching for an image by image.

You can refer to our previous article Building a Reverse Image Search System Based on Milvus and VGG if interested.

API Security Weekly: Issue #99

Posted: 02 Sep 2020 06:11 PM PDT

This week, we check out the API vulnerabilities in the Mercedes-Benz connected cars and the Russian inter-bank money transfer system. We also have the upcoming ASC 2020 conference next week, as well as a recording of IIoT Cybersecurity panel discussion from the recent IIoT World event.

Vulnerability: Mercedes-Benz car control

The conference Black Hat USA has posted the slides and the full research paper from the session "Security Research on Mercedes-Benz: From Hardware to Car Control" by Minrui Yan, Jiahao Li, and Guy Harpak. Too bad there's no video recording.

How to Write DRL Rules in Kogito for Globals Use Cases

Posted: 02 Sep 2020 01:43 PM PDT

While writing  DRL rules for Kogito, its syntax is not so different from regular Drools. However, I recommend to take a look at the document:

https://docs.jboss.org/kogito/release/latest/html_single/#_using_drl_rules_in_kogito_services

How to Maintain Secure Network Access When Employees Work Remotely

Posted: 02 Sep 2020 12:16 PM PDT

According to a recent survey, 51% of employees in Americans have transitioned to working remotely due to the COVID-19 pandemic. The sudden change to the remote workforce has left many companies struggling to establish security protocols and policies. Businesses are transitioning toward long-term remote work arrangements, demanding advanced safeguards against data breaches and cyber-attacks.

Businesses need to take measures to secure their employees' remote access. This post reviews remote work security tips you should incorporate to ensure your company's safety.

Best Practice for Exception Handling In SpringBoot

Posted: 02 Sep 2020 12:14 PM PDT

Whenever we think of handling exceptions at any level of our code we fall under writing everywhere try catch block in our code and then after some days when we try to go through our code we find most of the code is filled with handling exceptions. This degrades the readability of our code and also duplication of a lot of logger messages which we can easily avoid. Here we will try to learn the powerful feature provided by Spring Boot to avoid these duplications and improve readability of code while handling exceptions in our application.

Overview

As we all know exception handling is the most important and crucial thing in SpringBoot Rest APIs, which helps us to perform conditional and unconditional checkings for our code and handle any kind of exception in a proper way. Along with its benefits it also complicates the code and makes the code not easily readable to the unknown users. Using try catch blocks anywhere in your code is not recommended because we are not able to read the code properly and also it increases more unwanted lines in your class. So we need to have a common place where we can manage and handle all kinds of exceptions and send the respective error code for the API response depending on the exception types. In this blog we will try to know a simple way which will make our code be in better format related to handling of exceptions provided in SpringBoot.

Create an API Gateway with Load Balancer Using Java

Posted: 02 Sep 2020 12:06 PM PDT

Used Libraries

  1.   Netflix Eureka naming server 
  2.   Netflix Zuul
  3.   Ribbon
  4.   Feign

Network Architecture of the system

This Architecture Contains Four Applications

  1. Load balancing application [netflix-eureka-naming-server]
  2. Server application [micro-service-server]
  3. Client application [micro-service-client]
  4. API gateway application [api-gateway-server]

Steps To Run The Applications

  1. Install JDK 11 or latest. 
  2. Clone git repository of the project into local.
  3. Github: https://github.com/VishnuViswam/LOAD-BALANCER-WITH-API-GATEWAY.git
  4. Run Load balancing application first. 
  5. Run The API gateway application.
  6. Then run Server application in two ports. 
  7. At last run Client application.

1) Load Balancing Application

All client server communication will be done through this load balancing server application. 

Compiling Kotlin in Runtime

Posted: 02 Sep 2020 11:46 AM PDT

Everybody knows tasks, which could be easily solved if you can generate and execute code instantly inside JVM runtime. However, sometimes you have to create separate library, so code isn't known during its compile time.

Here we observe an approach to generate code and execute it after the application start. We will use jsr233 standard for this.

Spring Boot - Custom Password Validator Using Passay Library

Posted: 02 Sep 2020 11:40 AM PDT

Many online web platforms require users to enter a strong password during registration. This strategy helps reduce the vulnerability of user data to any hacking.

In this article, we'll create a simple form with a registration page. Before continuing with this tutorial, you should have a basic understanding of Java with the Spring framework.

Distributed Saga and Resiliency of Microservices

Posted: 02 Sep 2020 11:36 AM PDT

Sagas are typically used for modeling long-lived transactions like those involved in workflows. It is not advisable to use two-phase transaction protocols to control long-lived transactions since the locking of resources for prolonged durations across trust boundaries is not practical, rather is not at all advisable. Sagas are similar to nested transactions. In a nested transaction, atomic transactions are embedded in other transactions. In sagas, each of these transactions has a corresponding compensating transaction. While a Saga proceeds with its steps, if any of the transactions in a saga fails, the compensating actions for each transaction that was successfully run previously will be invoked so as to nullify the effect of the previously successful transactions.

Modeling a Saga and setting up a Saga Infrastructure is rather straight forward in Local and simple deployments, however when we want to scale out in public cloud environments, and that too with multiple instances of the same type of microservice, there comes a new list of challenges. We will look at few of them in this discussion.

Maven Plugin Testing - In a Modern way - Part III

Posted: 02 Sep 2020 11:24 AM PDT

In the second part of the series - Maven Plugin Testing - In a Modern way - Part II we have seen how to make the basic integration test while checking the log output of Maven builds.

In this third part we will dive into how Maven will be called by default during the integration tests and how we can influence that behavior.

Microservices Governance and API Management

Posted: 02 Sep 2020 11:18 AM PDT

Introduction

The term "Governance" often used in the context of governing countries or states with rules and regulations. In the context of Information Technology (IT), governance can be defined as the "model that connects people, processes, and technology to deliver value to the stakeholders". Given below are a couple of definitions found on the web.

"IT governance provides a structure for aligning IT strategy with business strategy" — source: https://www.cio.com/article/2438931/governanceit-governance-definition-and-solutions.html

Single-Tenant vs Multi-Tenant: SaaS Architecture

Posted: 02 Sep 2020 07:28 AM PDT

Today we'll break down the differences between single and multi-tenant architectures. The main difference between them is that these software applications can serve either one or more customers at the same time. A single tenancy architecture is mostly used throughout the SaaS (software-as-a-service) cloud services or delivery models. On the other hand, a multi-tenancy, though it is also an architecture of a single software application, serves multiple customers at a time.

By knowing the differences, people will understand how each architecture works and which model is the best solution for their needs, also I record a video were I explained 3 ways to architect your SaaS application. It's essential to learn more about single-tenant vs multi-tenant so people understand the importance these two architectures have.

Targeting Kubernetes Cluster With Gremlin Chaos Test

Posted: 02 Sep 2020 07:23 AM PDT

Gremlin is a leading software company focusing on chaos-test in the market. It also has a tool similar to Chaos Monkey which belongs to Netflix, but is more customized to test the system with random loads or scheduled shutdowns. In the article below, we will be testing a simple Kubernetes cluster running on EKS with Chaos Test.

Why Is Chaos Testing Important?

Chaos Engineering is used to improve system resilience. Gremlin's "Failure as a Service" helps to find weaknesses in the system before problems occur.

Running Linux on Windows

Posted: 02 Sep 2020 06:41 AM PDT

If Steve Ballmer were dead he'd be rolling in his grave right now. That's right - we brought Nanos unikernels to Microsoft Azure which means that you can now run Linux applications faster and safer than Linux itself on Azure of all things! Oh yeh - side benefit is that you can now run Linux applications on your Windows desktop as well through Hyper-V.

Ready to run your first application? Great!

The A-Z of Web Development

Posted: 02 Sep 2020 06:32 AM PDT

Give a man a program, frustrate him for a day.
Teach a man to program, frustrate him for a lifetime.
― Muhammad Waseem

Introduction

As we all know, web development is a very vast and wide field. The career path in this field can come in a different way, shape or form.

The Top Three Skills Every Successful Project Manager Needs to Focus On

Posted: 02 Sep 2020 06:17 AM PDT

Project management is a complex field in software development. Sometimes you, as a project manager, feel like they are responsible for everything. Since your performance directly affects the success rate of the entire project. Project managers not only manage tasks but, most importantly, thoroughly guide the team toward the project goals. Being a great project manager requires interdisciplinary approaches and the ability to master both hard and soft skills. Let's have a closer look at three essential competencies for the project manager to be successful. 

Technical Skills

Even though you don't need extensive technical knowledge, having at least some competencies is a must. It will allow you to effectively interact with your team and contribute ideas to technical and business-related discussions, ask the right questions, and provide adequate answers. Most importantly, technical skills help project managers to evaluate the feasibility of the desired feature to a specific product and design a strategy for its future implementation.

Maven Plugin Testing - In a Modern way - Part II

Posted: 02 Sep 2020 06:17 AM PDT

In the first part of the series - Maven Plugin Testing - In a Modern way - Part I we have seen how to make the basic setup with The Integration Testing Framework and run very basic integration test. 

In this second part we will take a deeper look into other aspects of testing Maven plugins in particular how we check the logging output of a Maven build process. Let us begin with writing more than a single integration test case. You can of course write multiple test cases within a single test class like the following:

Comments

Popular posts from this blog

Gizmodo

DZone.com Feed