News Aggregator


Ultra-Fast Microservices: When Microstream Meets Helidon

Aggregated on: Sun Jun 05 2022 17:36:06 GMT+0000 (Coordinated Universal Time)

Microservices have become a buzzword when we talk about creating a scalable application. But is that enough? The simple answer is no. As with any software architecture decision, it has a trade-off and several challenges. Lucky for us Java developers, there is a combination of two tools to make our life easier: Microstream and MicroProfile. This article will cover combining Microstream and Helidon to create a microservice application that is easily stable and ultra-fast.  Feel free to check out Part 1, Part 2, and Part 3 as well.

View more...

NLP Models for Writing Code: Program Synthesis

Aggregated on: Sun Jun 05 2022 17:36:06 GMT+0000 (Coordinated Universal Time)

Copilot, Codex, and AlphaCode: How Good are Computer Programs that Program Computers Now? Enabled by the rise of transformers in Natural Language Processing (NLP), we’ve seen a flurry of astounding deep learning models for writing code in recent years. Computer programs that can write computer programs, generally known as the program synthesis problem, have been of research interest since at least the late 1960s (pdf) and early 1970s. In the 2010s and 2020s, program synthesis research has been re-invigorated by the success of attention-based models in other sequence domains, namely the strategy of pre-training massive attention-based neural models (transformers) with millions or billions of parameters on hundreds of gigabytes of text.

View more...

How Java Apps Litter Beyond the Heap

Aggregated on: Sun Jun 05 2022 16:06:06 GMT+0000 (Coordinated Universal Time)

As Java developers, we’re no strangers to the concept of garbage collection. Our apps generate garbage all the time, and that garbage is meticulously cleaned out by CMS, G1, Azul C4, and other types of collectors. Basically, our apps are born to bring value to this world, but, nothing is perfect—including our apps that leave litter in the Java heap. However, the story doesn’t end with the Java heap. In fact, it only starts there. Let’s take the example of a basic Java application that uses a relational database such as PostgreSQL and solid-state drives (SSDs) as a storage device. From here, we’ll explore how our applications generate garbage beyond the boundaries of the Java runtime.

View more...

How to Convert JSON to RAML

Aggregated on: Sun Jun 05 2022 16:06:06 GMT+0000 (Coordinated Universal Time)

While working on creating API specifications using RAML, many times, we need to create a RAML Library or DataType from JSON payloads. We can accomplish this manually by using an API modeling tool like MuleSoft Anypoint Design Center. However, if the JSON payload is very large with multiple attributes, the conversion task becomes time-consuming and error-prone. It is better to use a tool that helps automate the conversion. ramldt2jsonschema is one such tool. It is a CLI and library for converting a RAML 1.0 DataType to a JSON schema, and back. It uses webapi-parser under the hood. The conversion process can be split into three steps.

View more...

How to Build a Graph Data System Powered by ScyllaDB and JanusGraph

Aggregated on: Sun Jun 05 2022 15:36:06 GMT+0000 (Coordinated Universal Time)

This tutorial will teach you how to deploy a Graph Data System, using JanusGraph and ScyllaDB as the underlying data storage layer. It is part of a broader training course ScyllaDB University course,  The Mutant Monitoring System (MMS)  A Graph Data System Powered by ScyllaDB and JanusGraph.  A graph data system (or graph database) is a database that uses a graph structure with nodes and edges to represent data. Edges represent relationships between nodes, and these relationships allow the data to be linked and for the graph to be visualized. It’s possible to use different storage mechanisms for the underlying data, and this choice affects the performance, scalability, ease of maintenance, and cost.

View more...

On Architects, Architecture, and Failures

Aggregated on: Sun Jun 05 2022 00:51:06 GMT+0000 (Coordinated Universal Time)

Let’s consider two things: 1.)   Bad things happen to good people

View more...

Spice up Your Slack Workspace With Custom Command Using AWS Lambda Function

Aggregated on: Sat Jun 04 2022 20:51:06 GMT+0000 (Coordinated Universal Time)

We have decided to make our Slack channel more attractive. On our team, most of the IM work-related correspondence is done on other channels (WhatsApp, Jabber), while our goal was to migrate these interactions to Slack. How were we to foster this change? Slack allows the creation of external applications, which is a huge benefit. We harnessed the feature of custom commands to make Slack more amusing, and a bit of humor always gives motivation.

View more...

Microsoft Outlook Integration to Mulesoft With Oauth 2.0

Aggregated on: Sat Jun 04 2022 17:36:06 GMT+0000 (Coordinated Universal Time)

The Microsoft Outlook Connector enables users to create daemon applications to connect directly with the Microsoft outlook, permitting users to create applications that can read or write to Outlook accounts using modern authentication without any manual intervention.  The lack of documentation to configure OAuth authentication for the Microsoft Outlook connector makes it difficult for developers to use the connector with this security configuration. This article will guide developers to perform seamless integration with Microsoft Outlook and Mulesoft.

View more...

Agile: The Forgotten Parts

Aggregated on: Sat Jun 04 2022 16:36:06 GMT+0000 (Coordinated Universal Time)

Agile practices have been adopted worldwide. Many companies are proud of being agile. Each of them implements it in a different way, which is good because there is no single way to do it, and it needs to be adapted to each scenario. From my point of view, too much focus is set on some aspects of Agile while a key one is forgotten. It is nothing new, but if this aspect is not considered, releasing new versions of your software can be a never-ending story. This is what I will tackle in this article.But before digging into that, I would like to do a small recap about the evolution of software development, starting with Waterfall and the birth of Agile. You may want to skip it if you already know about it.

View more...

3 Proven Ways Managers Can Improve Developer Focus

Aggregated on: Sat Jun 04 2022 00:21:05 GMT+0000 (Coordinated Universal Time)

We want to make the Dev Interrupted podcast a vital, enjoyable part of your week. Please take 2 minutes and answer our new Listener Survey. It lets us know a bit about you, what you want from Dev Interrupted and what you want from podcasts in general! This article was written exclusively for Dev Interrupted by Max Kolomaznik

View more...

Accessing Ethereum Archive Nodes With Infura

Aggregated on: Fri Jun 03 2022 22:51:05 GMT+0000 (Coordinated Universal Time)

Archive nodes are particular nodes on the Ethereum Network that store historical blockchain data. Because they offer this historical information, they are helpful when you need to audit past transaction history or gather data. Services like Etherscan and Dune Analytics use archive nodes, but anyone can run one themselves. In this article, we will review the different types of Ethereum nodes, dive deeper into archive nodes, and introduce the new archive node capabilities of Infura. We’ll then walk through a real-world project to show how to connect the Infura API and web3.js to a pre-built react frontend. Once complete, the user will be able to query an Archive Node for some statistics for a given Ethereum wallet address.

View more...

Creating a Simple API Stub With API Gateway and S3

Aggregated on: Fri Jun 03 2022 20:51:05 GMT+0000 (Coordinated Universal Time)

A while ago my team was looking to create a stub for an internal JSON HTTP-based API. The to-be stubbed service was quite simple. The service exposed a REST API endpoint for listing resources of a specific type. The API supported paging and some specific request/query parameters. GET requests to the service looked something like this:

View more...

Continuous Delivery: Create Products Faster with Lower Risks

Aggregated on: Fri Jun 03 2022 20:21:05 GMT+0000 (Coordinated Universal Time)

DevOps methodology continues to strengthen its position in programming. So-called “continuous” tools are among the most commonly used in the field. Such practices as Continuous Integration and Continuous Delivery allow you to constantly keep your code delivered into production as soon as any changes are made. This makes it possible to add new features in progress and fix the bugs on the go, as you work with small chunks of code, which are easy to operate. CI/CD methodology of software development brings reliability and speed to product creation, allowing it to hit the market faster.  CI is the first stage of the CI/CD technique. There are a lot of benefits of Continuous Integration implementation in your project. It is an essential process of a software update, and its primary function is to integrate code changes from various developers into a single information repository. 

View more...

Apache Kafka in the Healthcare Industry

Aggregated on: Fri Jun 03 2022 19:21:05 GMT+0000 (Coordinated Universal Time)

IT modernization and innovative new technologies change the healthcare industry significantly. This blog series explores how data streaming with Apache Kafka enables real-time data processing and business process automation. Real-world examples show how traditional enterprises and startups increase efficiency, reduce cost, and improve the human experience across the healthcare value chain, including pharma, insurance, providers, retail, and manufacturing. This is part one: Overview. Healthcare - A Broad Spectrum of Very Different Domains Health care is the maintenance or improvement of health via the prevention, diagnosis, treatment, amelioration, or cure of disease, illness, injury, and other physical and mental impairments.

View more...

Reactive Programming: The Steps To Integrate It Into Your Application

Aggregated on: Fri Jun 03 2022 17:51:05 GMT+0000 (Coordinated Universal Time)

According to Wikipedia, reactive programming (Rx) "is a declarative programming approach in computers that deals with data streams and change propagation. This paradigm allows users to easily specify static (e.g., arrays) or dynamic (e.g., event emitters) data streams, as well as indicate that an inferred dependence exists inside the related execution model, allowing for automatic propagation of the modified data flow." The word was first used in the IT industry in the 1960s, and since then, much has been written about it.  Unfortunately, as is so frequently the case, the new notion rapidly sparked a slew of misinterpretations that stick to this day. The 2014 Reactive Manifesto, which introduced "reactive systems" and their four sacred principles further twisted things up. In Rx programming, data flows are produced by one component, and the underlying structure supplied by the Rx libraries propagates those changes to other components that have been registered to accept those data changes. 

View more...

Improving Performance in a Hierarchical SQL Structure

Aggregated on: Fri Jun 03 2022 14:36:05 GMT+0000 (Coordinated Universal Time)

This article will show how column propagation can represent a straightforward approach to improving query performance when dealing with a hierarchical data structure. We'll do this with a real-world scenario based on a data-driven project involving a live data website developed for a startup operating in the sports industry. You'll learn everything you need to know about column propagation as a solution to the performance issues inherent in hierarchical SQL table structures. Let's begin.

View more...

The Quest to Build the Perfect Bot w/ Ubisoft's Joshua Romoff

Aggregated on: Fri Jun 03 2022 00:36:04 GMT+0000 (Coordinated Universal Time)

We want to make the Dev Interrupted podcast a vital, enjoyable part of your week. Please take 2 minutes and answer our new Listener Survey. It lets us know a bit about you, what you want from Dev Interrupted and what you want from podcasts in general!  Almost every single company we talk to focuses on having their engineering teams solve problems.

View more...

Agile for Web Development: Is It Really What Your Team Needs?

Aggregated on: Thu Jun 02 2022 21:51:04 GMT+0000 (Coordinated Universal Time)

Have you been considering using another approach to your web development process? If you have been an avid user of the waterfall method, you must be aware of agile procedures. Changing from waterfall to agile can sound a little scary because no one can predict if it will work for you. However, see it as something that must be implemented and tested a few times until your team finds how to make it work perfectly.  But how to know if a change to agile is genuinely what your company needs? Sadly, there is no short guide that you can answer to discover if you’re ready to follow the three laws of agile. Nevertheless, we want to explain the difference between agile and waterfall methods, the benefits of using agile, and how to succeed if you use this methodology in your business. 

View more...

Build a Twitter Leaderboard App With Redis and AWS Lambda (Part 2)

Aggregated on: Thu Jun 02 2022 20:51:04 GMT+0000 (Coordinated Universal Time)

This is the second blog post of a two-part series that uses a practical application to demonstrate how to integrate Redis with AWS Lambda. The first post was about the solution overview and deployment. Hopefully, you were able to try it out end to end. As promised, part two will cover the infrastructure aspects (IaC to be specific) which are comprised of three (CDK) stacks (in the context of a single CDK App). I will provide a walk-through of the CDK code which is written in Go, thanks to the CDK Go support. AWS Cloud Development Kit (CDK) is all about IaC (Infrastructure-as-code).

View more...

DevOps vs. SRE — Their Differential Impact on Building Efficiency and Reliability

Aggregated on: Thu Jun 02 2022 20:51:04 GMT+0000 (Coordinated Universal Time)

The software development life cycle has come a long way - from a non-overlapping development model - the Waterfall Model, to an iterative development model like Agile and DevOps. It’s interesting to notice that before the beginning of the DevOps movement (~2007-2008), SRE was born at Google (2003) to build the reliability and resiliency of the entire Google Infrastructure. In its SRE book, Google described how the collaborative efforts of DevOps engineers, SRE, and other engineers like Application Security engineers are vital for maintaining a product like Gmail. Looking at the above example, it is safe to say that our growing dependency on applications has propelled the widescale adoption of DevOps and SRE. Whether it’s to streamline our business functionalities or launch an app that simplifies our life, we need reliable and scalable systems at every step.

View more...

Usability vs. User Experience: What Are the Roles and the Main Differences?

Aggregated on: Thu Jun 02 2022 20:21:04 GMT+0000 (Coordinated Universal Time)

The terms Usability and User Experience are often confused and misused. These are interrelated disciplines, but they are certainly far from being synonymous. They have the interaction between the user and an object/platform. In this article, we will try to clarify some doubts about this issue.

View more...

What Is BaaS and How It Can Help Fintech Startups?

Aggregated on: Thu Jun 02 2022 19:21:04 GMT+0000 (Coordinated Universal Time)

Fintech applications are pretty tricky and expensive to build. Regulations, liquidity, and banking system integrations add an extra layer of complexity on top of the technical aspect. Starting a new PayPal or Revolut-like app requires having a business, legal, financial, and technical team.  My research of the potential shortcuts for fintech applications indicated that building everything from scratch is unnecessary. The market provides a range of ready-made Banking as a Service (BaaS) platforms. First, let’s find out what BaaS is and how those solutions can help fintech startups get on their feet at the quickest time to market. 

View more...

Top 5 Programming Languages in AI - A Comparison

Aggregated on: Thu Jun 02 2022 17:06:04 GMT+0000 (Coordinated Universal Time)

AI has become an essential part of our daily lives thanks to its many advantages in a wide range of different circumstances and use cases and how simple and easy it has made things for us to do tasks. AI has come a long way in the last several years, allowing organizations to thrive and reach their full potential. However, it wouldn't have made these AI advancements if not for the fundamental changes in programming languages.

View more...

Cross-Browser Compatibility Testing —What Browsers Should You Test?

Aggregated on: Thu Jun 02 2022 16:36:04 GMT+0000 (Coordinated Universal Time)

Introduction We have heard enough that technology is evolving and with that cross-browser compatibility testing is gaining traction. Although the users are becoming more tech-savvy and informed, they are still reluctant to try out different browsers. Businesses have different types of users, which means not everyone will use one kind of browser. Even though there is a high demand for Chrome, Mozilla Firefox, or Safari, there still are users who rely on older versions of browsers other than these. Because of this businesses end up accommodating outdated technology that leads to a slower system and dissatisfied customers. Cross-browser compatibility testing ensures that customers don’t become bait to the consequences of outdated systems. And hence the need for thorough cross-browser compatibility testing is vital for businesses to resolve Cross Browser Compatibility issues and ensure the best user experience. What Is Cross-Browser Compatibility Testing? Every website communicates uniquely with every browser; even each browser distinctively renders the website. This often causes cross-browser compatibility issues at different stages. The overall visual appearance of the website isn’t only dependent on the front-end development but also on the type of browser used to access the website. To avoid cross-browser differences, businesses should practice cross-browser compatibility testing to guarantee consistent delivery of quality user experience. Cross-browser compatibility testing is non-functional testing that enables enterprises to offer the best features of the website on different OS-Device-browser combinations.

View more...

It Can Be an IoNT Integrate With Blockchain?

Aggregated on: Thu Jun 02 2022 15:36:04 GMT+0000 (Coordinated Universal Time)

The Internet of Nano Things is one of the most talked-about topics in today's tech world. However, there are many challenges facing IoNT. The author speculates that several challenges can be solved with Blockchain-based on author sources. This article will discuss the differences between IoNT and IoT and how Blockchain addresses the challenges of IoNT. What Is the Internet of Nano Things (IoNT)? The Internet of Nano Things, or IoNT, has roots in IoT and nanotechnology, according to StatNano, which defines it as "an interconnected system of very small devices that transfer data over a network."

View more...

CockroachDB TIL: Volume 7

Aggregated on: Thu Jun 02 2022 12:36:04 GMT+0000 (Coordinated Universal Time)

This is my series of articles covering short "today I learned" topics as I work with CockroachDB. Read the previous installments:  Volume 1 Volume 2 Volume 3 Volume 4 Volume 5 Volume 6 Topic 1: Show Last Query Statistics CockroachDB has a very user-friendly and helpful UI called DB Console. I like to refer to it when I debug query performance. There is a very useful Statements page that shows a statement overview and explains plans and execution stats.

View more...

Jump Into the DevOps Pool. The Water is Fine

Aggregated on: Thu Jun 02 2022 03:51:04 GMT+0000 (Coordinated Universal Time)

In scanning the IT landscape, the call for DevOps engineers remains toward the top of many companies’ priorities. A nationwide search through various job posting sites returns literally thousands of DevOps opportunities. However, reviewing these job postings shows that the skillsets required are widely varied. In comparison, software development job descriptions and requirements tend to have a narrower focus – broadly speaking, a language and a particular framework. DevOps job descriptions and requirements range from implementing continuous integration and continuous delivery (CI/CD) processes, to building infrastructure, to configuration management, to cloud operations, to writing code in any number of languages, and so on. It’s an impressive and intimidating list. Have you considered joining the DevOps wave but have been challenged in getting a clear picture of what DevOps is or means? If so, you’re not alone. What is DevOps? While many organizations have DevOps teams, even within a single organization, there are likely to be multiple roles within a DevOps team. Why is that? The reason is that DevOps is a process, and various roles within a DevOps team each contribute to the process. The DevOps process is a product of the evolution of Agile development processes. With Agile, production-quality software is iteratively delivered, which drives the need to deploy software more often. The process of getting software into production needed to be streamlined, thus the DevOps movement and process was born.

View more...

What is Software Supply Chain Security?

Aggregated on: Thu Jun 02 2022 00:06:04 GMT+0000 (Coordinated Universal Time)

We want to make the Dev Interrupted podcast a vital, enjoyable part of your week. Please take 2 minutes and answer our new Listener Survey. It lets us know a bit about you, what you want from Dev Interrupted and what you want from podcasts in general! This article was written exclusively for Dev Interrupted by Lewis Dowling

View more...

What Is an Incident Management in ITIL

Aggregated on: Wed Jun 01 2022 20:06:04 GMT+0000 (Coordinated Universal Time)

Incident management: an unplanned interruption to a service or a reduction in the quality of service. By restoring regular service functioning as rapidly as feasible after an occurrence, incident management practices aim to minimize the negative effect of incidents on the organization.

View more...

How to Build a Treemap Using JavaScript

Aggregated on: Wed Jun 01 2022 19:06:04 GMT+0000 (Coordinated Universal Time)

Treemap visualizations are widely used in hierarchical data analysis. If you need to build one but have never done that before, you might think the process is somewhat complicated. Well, not necessarily. I decided to make a step-by-step tutorial explaining how to create awesome interactive treemap charts with ease using JavaScript. And you’re gonna love the illustrations! Are we alone in the universe? A question every one of us has asked ourselves at some point. While we are thinking about the odds of the Earth being the only habitable planet in the universe, or not, one of the things we might consider is how big the universe is. Let’s look at that with the help of treemaps! In this tutorial, we will be visualizing the scale of the 10 largest galaxies in the known universe using the treemapping technique.

View more...

Why and How Java Continues to Be One of the Most Popular Enterprise Coding Languages

Aggregated on: Wed Jun 01 2022 18:36:04 GMT+0000 (Coordinated Universal Time)

Java was created over 25 years ago, and it is still one of the most popular programming languages. This article will present an overview of how Java has grown into today's complex system and why it continues to remain a contemporary development environment. According to The PYPL Popularity of Programming Language Index, in February 2022, Java was the second most popular language globally, and its use has grown by 1.2% compared to February 2021. This ranking is determined by analyzing requests for language tutorials on Google.

View more...

What Is The Role Of Blockchain Technology in Securing Mobile Applications

Aggregated on: Wed Jun 01 2022 17:51:04 GMT+0000 (Coordinated Universal Time)

Introduction The world we know today is on the verge of going truly digital. With several industries and organizations implementing advanced technology to add a whole different level of security, the tech field has upgraded itself to a much larger level. Mobile applications are one of the essential topics discussed by professionals across the tech and business sectors. They are also revolutionizing the finance sector considerably, even enabling digital transactions. In this present digital world, blockchain has become one of the significant security definitions, and it has contributed a considerable advancement to the world of mobile finance. Now, without further ado, let’s dive straight into this and learn more about blockchain and how it secures mobile applications.  What Is Blockchain Technology? According to Investopedia, a blockchain is defined as a distributed database that is shared among the nodes of a computer network. 

View more...

Are You Getting the Most Out of Your Machine Learning Training Data

Aggregated on: Wed Jun 01 2022 17:51:04 GMT+0000 (Coordinated Universal Time)

With goods and services, fast shifting from pattern recognition and insight creation to more advanced forecasting approaches and, consequently, more competent judgments, data in ai, and data availability are critical for training artificial intelligence systems. Furthermore, increasing data availability and improved data utilization are essential for addressing social, climatic, and environmental concerns, resulting in healthier, more wealthy, and more sustainable societies. Creating machine learning training data for testing, assessment, and deployment are all common steps in developing an AI system. However, this is an iterative process because it may take numerous rounds of training, testing, and assessment before the intended output is attained, and data plays a crucial role.

View more...

Enabling Business Transaction Monitoring for App Connect Enterprise

Aggregated on: Wed Jun 01 2022 17:51:04 GMT+0000 (Coordinated Universal Time)

Introduction IBM App Connect V12 introduced a new capability called Business Transaction Monitoring (BTM) which allows the user to record a message throughout its lifecycle and determine its outcome. What Is Transaction Monitoring? Transaction monitoring involves surveying each message that passes through your flows and ruling whether it was transmitted successfully or had failed to reach the destination. Monitoring each transaction through an integration ensures that developers are notified when a system fails, and output has not been received. However, simply monitoring if a message has reached its destination does not help identify the specific problem, which is where Business Transaction Monitoring can help.

View more...

Is SASE the Solution for Third-Party Risk?

Aggregated on: Wed Jun 01 2022 17:21:04 GMT+0000 (Coordinated Universal Time)

What Is SASE? Secure access service edge (SASE) is a network security architecture that helps securely connect systems, endpoints, and users to services and applications from any location worldwide. It is a service you can access from the cloud and manage centrally.  SASE is a framework, not a specific technology. It works by combining several cloud-native security technologies, including: 

View more...

Instrumenting a JavaScript Application for OpenTelemetry, Part 1: Setup

Aggregated on: Wed Jun 01 2022 16:51:04 GMT+0000 (Coordinated Universal Time)

A lot of what you read around the topic of Observability mentions the benefits and potential of analyzing data, but little about how you collect it. This process is called “instrumentation” and broadly involves collecting events in infrastructure and code that include metrics, logs, and traces. There are of course dozens of methods, frameworks, and tools to help you collect the events that are important to you, and this post begins a series looking at some of those. This post focuses on introductory concepts, setting up the dependencies needed, and generating some basic metrics. Later posts will take these concepts further. An Introduction to Metrics Data Different vendors and open source projects created their own ways to represent the event data they collect. While this remains true, there are increased efforts to create portable standards that everyone can use and add their features on top of but retain interoperability. The key project is OpenTelemetry from the Cloud Native Computing Foundation (CNCF). This blog series will use the OpenTelemetry specification and SDKs, but collect and export a variety of the formats it handles.

View more...

Confidence Is Good. Facts on Your Side, Better! — A Lesson for Efficient Software Development

Aggregated on: Wed Jun 01 2022 16:51:04 GMT+0000 (Coordinated Universal Time)

Last year, I referred to a quote from the TV show ‘Better Call Saul’ in a blog, https://dzone.com/articles/perfection-is-the-enemy-of-perfectly-adequate-a-le to draw a parallel to building MVPs. We have a new season out this year, and keeping it topical, here I am using another one of the quotes from the show as uttered by the iconic character Chuck McGill. 

View more...

Getting Started With SQL Function PATINDEX and Its Use Cases

Aggregated on: Wed Jun 01 2022 16:21:04 GMT+0000 (Coordinated Universal Time)

Today, I will explain a SQL Server string function PATINDEX () used to return an integer value representing the starting position of the first occurrence of a pattern in a specified expression. This function will return zero if the pattern is not found in the specified expression. The syntax of this function is given below.

View more...

The Serverless Database You Really Want

Aggregated on: Tue May 31 2022 23:36:03 GMT+0000 (Coordinated Universal Time)

The dreaded part of every site reliability engineer’s (SRE) job eventually: capacity planning. You know, the dance between all the stakeholders when deploying your applications. Did engineering really simulate the right load and do we understand how the application scales? Did product managers accurately estimate the amount of usage? Did we make architectural decisions that will keep us from meeting our SLA goals? And then the question that everyone will have to answer eventually: how much is this going to cost? This forces SREs to assume the roles of engineer, accountant, and fortune teller. The large cloud providers understood this a long time ago and so the term “cloud economics” was coined. Essentially this means: rent everything and only pay for what you need. I would say this message worked because we all love some cloud. It’s not a fad either. SREs can eliminate a lot of the downside when the initial infrastructure capacity discussion was maybe a little off. Being wrong is no longer devastating. Just add more of what you need and in the best cases, the services scale themselves — giving everyone a nice night’s sleep. All this without provisioning a server, which gave rise to the term “serverless.”

View more...

Building a 24-Core Raspberry Pi Cluster From Scratch

Aggregated on: Tue May 31 2022 23:21:03 GMT+0000 (Coordinated Universal Time)

A Raspberry Pi is a mini-computer board to which you can connect a monitor, mouse, and keyboard, and install a Linux-based operating system with a GUI. Or you can use it in “headless” mode with no GUI and run, for example, a database server. There are many usages you can give a Raspberry Pi—from building a Minecraft server to smart mirrors, the possibilities are endless. Since I started to discover MariaDB and learned about database clusters, Distributed SQL, and Xpand, the idea of building a Raspberry Pi cluster has been in the back of my head. A cluster like this is a great way to experiment with distributed systems.

View more...

DBCP Connection Pooling | Oracle | MySQL | Tomcat | Java Servlets | JDBC

Aggregated on: Tue May 31 2022 23:06:03 GMT+0000 (Coordinated Universal Time)

In the video below, we take a closer look at DBCP connection pooling. Let's get started!

View more...

Event Mesh: Point-to-Point EDA

Aggregated on: Tue May 31 2022 22:51:03 GMT+0000 (Coordinated Universal Time)

In watching the 2022 EDA Summit presentation "Powering Your Real-Time, Event-Driven Enterprise with PubSub + Platform" by Shawn McAllister, CTO of Solace (sponsor of the Summit), I learned of the origins of his company. This article recounts his presentation with my personal synopsis. As he recounted, let’s “start with capital markets…where Solace started." Presentation Highlights and Additional Commentary Shawn began by stating: "Capital markets became digital…over 20 years ago…They had, of course, on-prem applications…but the magic really happened in these 'colocation centers,' ... data centers that are not owned by the bank or the buy-side firm... They’re shared, so they’re kind of like the clouds that you have today… and those colocation centers were then located close to the execution venues, where a lot of the trading happened."

View more...

True Component-Testing of the GUI With Karate Mock Server

Aggregated on: Tue May 31 2022 21:51:03 GMT+0000 (Coordinated Universal Time)

In my previous post, I discussed the difference between tests that target code versus those that target an API. A subset of the second category are automated tests for a web/mobile interface that mimic user behavior and validate the rendered responses, using Cucumber/Selenium, Cypress, or any other stack. These are typically written and executed as end-to-end tests, in that they require a production-like setup of the backend; but that needn’t be the case. GUI tests can turn into true component tests if they target the browser, but with a fully mocked backend. In a complex microservices architecture, it makes good sense to do so. In this article, I will highlight the motivation for writing those tests, and in a follow-up, I will give tips and examples on how to do so with the Karate framework. Feel free to dig into its excellent document if you can’t wait.  Separation of Concerns Between Frontend and Backend Traditionally, in the world of JSP and JSF, the backend of web applications would contain mostly display and rendering logic, on top of handling all business rules. With so much server-side rendering, you had no choice but to spin up the actual backend code if you wanted to automate a user scenario in the browser. Without the backend, nothing much would work. 

View more...

When Disaster Strikes: Production Troubleshooting

Aggregated on: Tue May 31 2022 21:51:03 GMT+0000 (Coordinated Universal Time)

Tom Granot and I have had the privilege of Vlad Mihalcea’s online company for a while now. As a result,  we decided to do a workshop together talking about a lot of the things we learned in the process. This workshop would be pretty informal ad-hoc, just a bunch of guys chatting and showing off what we can do with tooling.  In celebration of that, I thought I’d write about some of the tricks we discussed amongst ourselves in the past to give you a sense of what to expect when joining us for the workshop but also a useful tool in its own right.

View more...

Reasons Why DevOps Adoption Might Be of Help for Business

Aggregated on: Tue May 31 2022 20:51:03 GMT+0000 (Coordinated Universal Time)

As far as this modern and tech-oriented IT domain goes, DevOps has become a standard to judge operations’ overall efficiency and smoothness. However, like it is with everything in the world, there is still a sizeable chunk of enterprises in the process of either understanding what it means or completely not being aware of it at all. In this post, we will try to cover a few crucial points that will include a brief overview of DevOps and why DevOps adoption might be helpful for businesses.

View more...

Functional vs. Non-functional Testing: Can You Have One Without the Other?

Aggregated on: Tue May 31 2022 20:21:03 GMT+0000 (Coordinated Universal Time)

Functional and non-functional tests are the most popular approach to categorizing the different types of software testing. These two categories refer to the very essence of the testing process and what exactly is being tested. There are two things to know about functional and non-functional testing if you’ve never dug deep into these two testing categories before.  One, the division between non-functional and functional testing is not set in stone, and for some testing types, categorizing them is no easy feat. Two, both functional and non-functional testing are essential for the success of your software testing project, albeit in different ways. Today, we will take a closer look at the difference between functional and non-functional requirements, where these two types of testing stand in the software testing process, and how they influence the cost of testing.

View more...

How to Perform Visual Regression Testing Using Playwright

Aggregated on: Tue May 31 2022 17:36:03 GMT+0000 (Coordinated Universal Time)

Regression testing verifies that system changes do not interfere with existing features or code structure. They are part of almost every test suite in software development lifecycles. It is common for developers to change or add a code section and unintentionally disrupt something that is working just fine. Visual regression testing functions on the same logic but confines it to the visual aspects of the software. It works by comparing two images and automating complicated scenarios, like when we cannot identify the elements in the DOM tree. However, visual regression can be used on any website.

View more...

Creating an Event-Driven Architecture in a Microservices Setting

Aggregated on: Tue May 31 2022 16:51:03 GMT+0000 (Coordinated Universal Time)

Event-driven-based architectures and microservices are both known to improve agility and scalability in systems. Event-driven architectures decouple the producer and consumer of the data, while microservices are a modern service-oriented architecture. But can these two architectures co-exist?

View more...

AWS Lambda Basics: Writing Serverless Code

Aggregated on: Tue May 31 2022 16:51:03 GMT+0000 (Coordinated Universal Time)

Introduction There are four key capabilities necessary for a service or platform to be serverless: No server management Flexible scaling High availability (fault tolerance) No idle capacity In this post, we will learn the basics of AWS Lambda and how you can use it for different use cases with ease. This will be an introduction post that can provide a foundation for upcoming demos and posts to help you learn AWS.

View more...

Web Performance Testing — What, Why, How of Core Web Vitals

Aggregated on: Tue May 31 2022 16:21:08 GMT+0000 (Coordinated Universal Time)

A website needs to be constantly tested and optimized to be in line with Google's web and SEO guidelines. As a result, it has an advantage over others in terms of visibility, brand image, and driving traffic. However, to tactically assess the website's performance, it needs to be measured in a well-thought-out manner. Core Web Vitals is a key performance metric that analyzes the website's performance by investigating the data and provides a strategic platform to scale up the website's user experience. This article will learn about web performance testing and how Core Web Vitals plays a crucial and strategic part in it. What Is Web Performance Testing? Web performance testing is executed, so that accurate information is provided on the application's readiness by monitoring the server-side application and testing the website. This is done by simulating a load that is in line with real conditions so that the expected load can be supported by the application that has been evaluated. 

View more...