How To Find Broken Links Using Selenium WebDriver

What thoughts come to mind when you come across 404/Page Not Found/Dead Hyperlinks on a website? Aargh! You would find it annoying when you come across broken hyperlinks, which is the sole reason why you should continuously focus on removing the existence of broken links in your web product (or website). Instead of a manual inspection, you can leverage automation for broken link testing using Selenium WebDriver.

When a particular link is broken and a visitor lands on the page, it affects that page’s functionality and results in a poor user experience. Dead links could hurt your product’s credibility, as it ‘might’ give an impression to your visitors that there is a minimal focus on the experience.

Redis Streams in Action — Part 3 (Tweet Processor App)

Welcome to this series of blog posts that covers Redis Streams with the help of a practical example. We will use a sample application to make Twitter data available for search and query in real-time. RediSearch and Redis Streams serve as the backbone of this solution that consists of several co-operating components, each of which will be covered in a dedicated blog post.

The code is available in this GitHub repo - https://github.com/abhirockzz/redis-streams-in-action

Apache Kafka for Industrial IoT and Manufacturing 4.0

This post explores use cases and architectures for processing data in motion with Apache Kafka in Industrial IoT (IIoT) across verticals such as automotive, energy, steel manufacturing, oil&gas, cybersecurity, shipping, logistics. Use cases include predictive maintenance, quality assurance, track and track, real-time locating system (RTLS), asset tracking, customer 360, and more. Examples include BMW, Bosch, Baader, Intel, Porsche, and Devon.

Why Kafka Is a Key Piece of the Evolution for Industrial IoT and Manufacturing

Industrial IoT was a mess of monolithic and proprietary technologies in the last decades. Modbus, Siemens S7, SCADA, and similar "concepts" controlled the industry. Vendors locked in enterprises by intentionally building incompatible products without open interfaces. These systems still run on Windows XP or similar non-supported outdated operating systems and without security in mind.

BlockHound: How it Works

One of the talks in my current portfolio is Migrating from Imperative to Reactive. The talk is based on a demo migrating from Spring WebMVC to Spring WebFlux in a step-by-step approach. One of the steps involves installing BlockHound: it allows to check whether a blocking call occurs in a thread it shouldn't happen and throws an exception at runtime when it happens.

I've presented this talk several times in the previous week, both in its Java version and its Kotlin one. One such presentation was at Javaday Istanbul. After the talk, one of the questions I received was, "How does BlockHound work?" I admit that at the time, I couldn't remember. After the surprise had passed, but too late, I remembered it involved a Java agent. But I wanted to go down the rabbit hole.

NoSQL Injections in Rocket.Chat 3.12.1: How A Small Leak Grounds A Rocket

Rocket.Chat is one of the most popular open-source solutions for team communication, written in JavaScript and TypeScript. It has more than 12 million users worldwide and there are over 800,000 server instances deployed that are being used to exchange confidential information and files. My security research team and I discovered critical vulnerabilities in its source code that could have been used by an attacker to take complete control over a server, starting with as little as any user’s email address. 

In this blog post, I investigate these vulnerabilities by first taking a quick look at NoSQL databases, then explain how injections look like in that context. I then analyze the found vulnerabilities and how they can be chained for an exploit. Finally, I give advice on how to prevent such bugs in your applications.

Why SAFe Hurts

SAFe can hurt - but not as bad as a moto crash. : )

Why do some people find SAFe to be helpful in empowering teams while others find implementing the Framework painful? To be honest, both scenarios are equally valid.

As I was beginning to refocus my career on transforming the operating models and management structures of large enterprises, I found that the behavioral patterns of Agile and the operational cadence of Scrum shined a spotlight on an organization's greatest challenges. As a byproduct of working faster and focusing on flow, impediments became obvious. With the issues surfaced, management had a choice: fix the problems or don’t.

NATS.io JetStream Stream Creation With the NATS Java Library

The NATS Java library with support for JetStream has just been released!

JetStream allows you to persist streams of messages, allows consumers to either subscribe in real-time or to access the messages at a later time with the added flexibility to choose from where in the stream you want to start receiving messages. You can start reading from the stream at a specific point in time or start at a specific message sequence number.

How the Capital One Breach Could Have Been Avoided With Application-Layer Data Encryption

Image credit: Unsplash

In July 2019, Capital One became aware of a data breach inside their Amazon Web Services (AWS) cloud infrastructure. A security researcher found social media posts describing the attack, and after investigating the breach, the company discovered that the attacker was able to steal the personal information of approximately 100 million individuals in the United States and 6 million in Canada.

TiDB Operator Source Code Reading (Part 2): Operator Pattern

In my last article, I introduced the TiDB Operator's architecture and what it is capable of. But how does TiDB Operator code run? How does TiDB Operator manage the lifecycle of each component in the TiDB cluster?

In this post, I'll present Kubernetes's Operator pattern and how it is implemented in TiDB Operator. More specifically, we'll go through TiDB Operator's major control loop, from its entry point to the trigger of the lifecycle management.

TypeScript 4.3: I Object Your Honor!

In celebration of TypeScript 4.3, I take a look at TypeScript's Object-Oriented features and look at the new features this release brings.

TypeScript 4.3 - I Object Your Honor!

TypeScript provides good support for both object-oriented programming and function-oriented programming (I’m not saying functional programming as I don’t want the purists to hunt me down).

How to Set up Cypress and Typescript End to End Automation Testing Framework From Scratch

This article explains creating or setting up a cypress.io end-to-end testing framework from scratch using Typescript. Unlike another tutorial, this explains setting up the Cypress framework using Typescript in a simple and easy way. This article is helpful for whoever wants to set up the Cypress Typescript automation framework for the first time. Also, I know that there are many, migrating from different automation frameworks like Protractor, webdriver.io, etc. this will be helpful for them too.

This Tutorial shows page object model creation as well, however you can use it for any type of framework by skipping those steps.

How Carbon Uses PrestoDB With Ahana to Power Real-Time Customer Dashboards

The author, Jordan Hoggart, was not compensated by Ahana for this review.

The Background

At the base of Carbon’s real-time, first-party data platform is our analytics component, which combines a range of behavioral, contextual, and revenue data, which is then displayed within a dashboard in a series of charts, graphs, and breakdowns to give a visual representation of the most important actionable data. Whilst we pre-calculate as much of the information as possible, there are different filters that allow users to drill deeper into the data, which makes querying critical.

Why Agile Fails Because of Corporate Culture

Large corporations are increasingly longing to be like startups: Flat hierarchies and the absence of formal procedures result in unseen productivity; doing without restraining bureaucracy allows for remarkable speed, innovation, and creativity.

Speed, innovation, and creativity: It's exactly these things most corporations are desperately lacking. In turn, it's only logical for big companies to want to take a leaf out of the startups' book. Where the clumsy imitation of a start-up mentality fails or maybe isn't even an option, the magic word agile soon echoes through the aisles. Because you know, the competition is already successfully agile, every consultant can deliver ready-made, highly scaled agile wonders on demand in no time at all, and even the house and farm service provider has had experience with it for a long time, but simply wasn't asked about it until now. So "agile" gets written on the banner, swarms of self-proclaimed evangelists get unleashed onto the staff and off they go on a journey into a brighter future.

A Formula for Success: AI-Powered Online Document Verification

Identity theft cases are progressing by leaps and bounds in this modern age of technological advancements. The rate at which fraudulent activities are evolving is directly proportional to the momentum at which technology is progressing. Also, the data production rate is increasing with the progression of the human population. Do you know that 2.5 quadrillion bytes of information are generated each day? 

Considering the rate at which data is produced and utilized all across the globe, the acquisition of sophisticated measures for the protection of such data is something that must not be neglected by enterprises of all sizes at any cost. Keeping in view the swift pace of progression in identity theft cases, robust mechanisms such as real-time identity verification solutions, especially document verification must be incorporated for the enhancement of security protocols and to combat illicit money transfers, counterfeits, chargebacks, and other relevant fraudulent activities. 

Empower Your Business With Big Data + Real-Time Analytics in TiDB

Big data, in recent years, is not just a buzzword, but also a growing need for ambitious companies. With skyrocketing data scale and stringent requirements on data freshness, big data-related scenarios are becoming complicated and multi-dimensional. Thus, many companies use real-time data warehouses to meet their business demand.

But data warehouses are not the only option. An emerging category of databases, Hybrid Analytical/Transactional Processing (HTAP) databases, can serve you just as well as data warehouses, if not better. HTAP databases can handle Online Transactional Processing (OLTP) workloads and respond quickly to big data analytical requests in real time.

Mule4: Logging and Error Handling Framework

Introduction

For any application development, reusable assets are more important, which can be shared across the organization's application. Based on requirements, it can be enhanced also. Based on my experience and knowledge, I prepare Mule4 logging and error handling framework, which can be more useful and also can get an idea to enhance according to project needs.

Design Logging Framework

Logging is most important while finding production issues, analyzing bugs, change code. It's also important to know how a request is being processing and responding back to the caller. I have come across the below 7 areas where we should log information/state of a request.