Authorization Technology is the Future of Collaboration

Back in the day, security was built around the principle that the people who work for the organization are the good guys that we give access to, while everyone outside the organization are the bad guys we need to keep out.

Well, two things have radically changed since then.

Expose Your App to The Internet Using Ingress Controller

Do you have many internet-facing applications and worried about the cost of Load Balancer? Well, this article will help you expose your applications to the Internet using a single Load Balancer, saving you hundreds of dollars.

What is Ingress?

Let us first understand what Ingress is. An Ingress is an API object that manages external access to the services in a cluster and may provide load balancing, SSL termination, and name-based virtual hosting.

How to Protect Against XSS Attacks in Java

Cross-Site Scripting (XSS) attacks are a form of threat that takes advantage of vulnerabilities in web applications to prey on user information. Using malicious scripts, attackers can reach different users through a usually trustworthy web page and access any information logged in the browser by the user including cookies and other sensitive information. These kinds of attacks can occur wherever a web program accepts user input without validation and subsequently uses it within its output.

It is important to take all necessary steps toward protecting your users, and this is especially true in the case of XSS attacks, as a user may only be aware of their use of your website, and not the malicious actor who is threatening them. This can then harm your website’s reputation as users will relate any issues to its users and may be disinclined to return.

4 Mistakes That Prevent Your Java APIs From Having More Users

When you have more people using your Java APIs, your projects grow and naturally you become a better engineer. You become more likely to increase your incomes and join great new projects. It also enables people to get their jobs done faster. So it’s a win-win situation.

To keep those people who already use your API and attract more, you need to eliminate these 4 mistakes.

Google Analytics 4: 7 Biggest Pitfalls of the Revamped GA

With the launch of Google Analytics 4, Google has delivered its biggest alteration to analytics in the company’s long and successful history. But with the removal of core features and a complex new interface, is GA4 really ready to start driving the growth of businesses?

The new system has been developed to unify the measurement of apps and websites and is intended to offer marketers a much deeper level of understanding regarding their campaign performance.

Chaos Engineering: Deadlock

In this series of chaos engineering articles, we have been learning to simulate various performance problems. In this post, let’s discuss how to simulate deadlock.

What Is a Deadlock?

Deadlocks tend to happen in multi-threaded applications. The technical definition of a ‘deadlock’ is a situation where a set of processes are blocked because each process is holding a resource and waiting for another resource acquired by some other process. Here is a practical example that may help you understand deadlocks. 

SLA and Its Impact on REST API Architectural Styles

Introduction

REST APIs are the most common way of communication between systems in current scenarios. Though many systems responses are time-critical in nature, where caller expects the response to come back for a given request in defined SLA (Service Level Agreement).

As systems are evolving and the wide adoption of microservices, the number of dependencies for a given microservice is ever-increasing, thus impacting the overall SLA. In order to meet the given SLA, we need to adopt different REST API architectural styles. This article discusses the old way of doing REST with a single bounded context vs. the new evolved way with multiple coordinating bounded contexts.

HTTP Protocol: Obviously Unobvious

Hyper Text Transfer Protocol

HTTP protocol nowadays is still one of the most popular protocols used over the internet. But many developers still can't explain clearly what is it. In this article, you will find out what HTTP is practically is. 

Protocol Meaning

But stepping back a little let's remind what is the meaning of Protocol. A protocol can be understood as a contract or agreement between sender and receiver. The HTTP protocol is described in RFC 2616. The main purpose of the HTTP protocol is to send web data to browsers to render it. 

How to Perform Object Level Recovery in SQL Server

When a SQL Server database turns corrupt and cannot be repaired, you can restore it from a recent backup to recover objects and data. However, the problem arises when you need to perform object level recovery instead of performing a full database backup.

In other words, there may arise a need to restore a specific table or any other object from the database backup, rather than the complete database. But, there is no direct method to perform object level recovery.

How to Scale for Reliability and Trust

As more people depend on your product, reliability expectations tend to grow. For a service to continue succeeding, it has to be one that customers can rely upon. At the same time, as you bring on more customers, the technical demands put on your service increase as well.

Dealing with both the increased expectations and challenges of reliability as you scale is difficult. You’ll need to maintain your development velocity and build customer trust through transparency. It isn’t a problem that you can solve by throwing resources at it. Your organization will have to adapt its way of thinking and prioritization. In this blog post, we’ll look at how to:

Perl and XML in 2021: A Few Lessons Learned

It's been years since I've had to hack on anything XML-related, but a recent project at work has me once again jumping into the waters of generating, parsing, and modifying this 90s-era document format. Most developers these days likely only know of it as part of the curiously-named XMLHTTPRequest object in web browsers used to retrieve data in JSON format from servers, and as the "X" in AJAX. But here we are in 2021, and there are still plenty of APIs and documents using XML to get their work done.

In my particular case, the task is to update the API calls for a new version of Virtuozzo Automator. Its API is a bit unusual in that it doesn't use HTTP but rather relies on opening a TLS-encrypted socket to the server and exchanging documents delimited with a null character. The previous version of our code is in 1990s-sysadmin-style Perl, with manual ing of objects and parsing the XML using regular expressions. I've decided to update it to use the Moo object system and a proper XML parser. But which parser and module to use?

Quality Sense Podcast: Sumit Agarwal — DevOps and Testing

In today’s Quality Sense episode, Federico has a conversation all about DevOps and testing with Sumit Agarwal, the Lead Cloud Architect for a global fin-tech leader with over $4.5 billion in revenues that helps clients get ahead of today’s challenges. Listen to today’s episode where they touch upon the origin of DevOps, testing and dealing with legacy code, and making the necessary culture shifts to successfully implement modern software delivery practices.

Episode Highlights:

  • The origins of DevOps and how testing relates to it
  • Challenges of implementing Scrum in larger enterprises and testing legacy systems
  • How testing can help with the mindset shift and cultural changes that need to take place for DevOps to thrive
  • How to generate team spirit and proper collaboration not only with developers, but also with colleagues in other areas while working remotely

Relevant Links:

Why You Should Care About Service Meshes

Many developers wonder why they should care about service meshes. It's a question I'm asked often in my presentations at developer meetups, conferences, and hands-on workshops about microservices development with cloud-native architecture. My answer is always the same: "As long as you want to simplify your microservices architecture, it should be running on Kubernetes."

Concerning simplification, you probably also wonder why distributed microservices must be designed so complexly for running on Kubernetes clusters. As this article explains, many developers solve the microservices architecture's complexity with service mesh and gain additional benefits by adopting service mesh in production.

Execute Spark Applications on Databricks Using the REST API

Introduction

While many of us are habituated to executing Spark applications using the 'spark-submit' command, with the popularity of Databricks, this seemingly easy activity is getting relegated to the background. Databricks has made it very easy to provision Spark-enabled VMs on the two most popular cloud platforms, namely AWS and Azure. A couple of weeks ago, Databricks announced their availability on GCP as well. The beauty of the Databricks platform is that they have made it very easy to become a part of their platform. While Spark application development will continue to have its challenges - depending on the problem being addressed - the Databricks platform has taken out the pain of having to establish and manage your own Spark cluster.

Using Databricks

Once registered on the platform, the Databricks platform allows us to define a cluster of one or more VMs, with configurable RAM and executor specifications. We can also define a cluster that can launch a minimum number of VMs at startup and then scale to a maximum number of VMs as required. After defining the cluster, we have to define jobs and notebooks. Notebooks contain the actual code executed on the cluster. We need to assign notebooks to jobs as the Databricks cluster executes jobs (and not Notebooks). Databricks also allows us to setup the cluster such that it can download additional JARs and/or Python packages during cluster startup. We can also upload and install our own packages (I used a Python wheel).

Which Configuration Changes in SQL Server Require a Restart?

SQL Server is a complex beast, with many configuration options that can range from recommended to completely avoided.

Since the release of SQL Server 2016, several options that were recommended post-install have been rolled into the default installation options and no longer need to be done, and similar changes were made with SQL Server 2017. Even so, there are configuration changes we data professionals need to make after installation, during maintenance windows, and sometimes even during operating hours, so here’s a handy list of changes that do and don’t require a restart of your operating system or SQL Server instance.

7 Top Subtitles APIs

Subtitles are an important part of any online video strategy. Film and video subtitles are important for accessibility for hearing impaired persons, offer language help for non-native speakers, improve content comprehension, offer important metadata to improve SEO, and are also proven to increase audience engagement and overall watch times.

Developers wanting to add subtitles functions to applications will need to discover suitable Subtitles APIs.

A (Definitive?) Guide on LazyInitializationException

Posts that have been written about Hibernate's LazyInitializationException could probably fill whole books. Yet, I believe each of them focuses on a particular aspect of it: some on a specific solution, some on how to solve it with Spring Boot, etc. I'd like this post to be the definitive guide on the subject, even though I'm pretty sure it won't. At least, I'll be able to point others to it.

The Root Cause

Whether you love or hate ORM frameworks in general, they are nonetheless pretty common in the Java ecosystem. JPA is the ORM standard and part of the Jakarta EE specifications. Hibernate is its most widespread implementation: for example, it's the default in Spring Boot.