News Aggregator


Metrics 2.X in Spring Boot 2.X

Aggregated on: Thu Oct 21 2021 19:55:18 GMT+0000 (Coordinated Universal Time)

Spring Boot offers a metrics endpoint that you can use diagnostically to analyze the metrics gathered by the application. Adding the Dependency Inside POM Is the First Step A meter is an interface for gathering a bunch of estimations (which we separately call measurements) about your application. spring-measurements loads with an upheld set of Meter natives including Timer, Counter, Gauge, DistributionSummary, and LongTaskTimer. Note that diverse meter types bring about an alternate number of measurements. For instance, while there is a solitary metric that addresses a Gauge, a Timer estimates both the number of coordinated occasions and the absolute season of all occasions planned.

View more...

Oracle Partition Pruning

Aggregated on: Thu Oct 21 2021 19:55:18 GMT+0000 (Coordinated Universal Time)

Oracle database optimizer analyzes your SQL statement, if there is a partitioned table and "appropriate" where condition, it decides which partitions will be ignored and which partitions will be accessed and read. This is called partition pruning. It is an essential performance feature for data warehouses. As you can guess, when you prune some of the partitions, the data you need to read from disks is reduced considerably, which leads to shorter processing times.

View more...

Data Fabric: What Is It and Why Do You Need It?

Aggregated on: Thu Oct 21 2021 19:55:18 GMT+0000 (Coordinated Universal Time)

Insight-driven businesses have the edge over others; they grow at an average of more than 30% annually. Noting this pattern, modern enterprises are trying to become data-driven organizations and get more business value out of their data. But the rise of the cloud, the emergence of the Internet of Things (IoT), and other factors mean that data is not limited to on-premises environments. In addition, there are voluminous amounts of data, many data types, and multiple storage locations. As a consequence, managing data is getting more difficult than ever. One of the ways organizations are addressing these data management challenges is by implementing a data fabric. Using a data fabric is a viable strategy to help companies overcome the barriers that previously made it hard to access data and process it in a distributed data environment. It empowers organizations to manage mounting amounts of data with more efficiency. Data fabric is one of the more recent additions to the lexicon of data analytics. 

View more...

How to Accelerate Hyper-Automation With Industrial IoT

Aggregated on: Thu Oct 21 2021 19:10:18 GMT+0000 (Coordinated Universal Time)

Many enterprises have already adopted business process automation (BPA) to improve efficiency and reduce human error. However, by and large, industrial automation is fragmented – it applies to specific business aspects but is not used across the entire organization yet. The key to expanding automation across the company is hyper-automation. In 2020, Gartner named hyper-automation the # 1 technology trend of the year. So what is it, and how can large and small businesses benefit from it? This article will walk you through specific areas where industrial IoT integration can help accelerate your pace of hyper-automation.

View more...

Success Story: From AWS EMR to Kubernetes

Aggregated on: Thu Oct 21 2021 19:10:18 GMT+0000 (Coordinated Universal Time)

Motivation This article is an overview of the path we followed to migrate Spark Workloads to Kubernetes and to avoid EMR dependency. EMR was an important support tool at Empathy.co to orchestrate Spark workloads, but once the workloads became more complex, the use of EMR also became more complicated. So, back in December 2020, the Step Function flow to orchestrate the different EMR clusters was like this: In January 2021, an initial Spark on Kubernetes RFC was proposed by the Platform Engineering team. The aim was to have a better solution with less possible friction between teams, especially the Data and Ether teams, the main users of the Spark workloads.

View more...

Dunning-Kruger Effect and the Journey of a Software Engineer

Aggregated on: Thu Oct 21 2021 18:40:18 GMT+0000 (Coordinated Universal Time)

The Dunning-Kruger Effect Let’s start with a brief definition.  The Dunning-Kruger effect is the phenomenon whereby people with little knowledge tend to overestimate their abilities, precisely because they ignore how much knowledge is necessary to master them.

View more...

How To Migrate a Monolithic Application to Microservices

Aggregated on: Thu Oct 21 2021 18:40:18 GMT+0000 (Coordinated Universal Time)

Monolithic Architecture Monolithic applications are big fat complex single applications that have high complexity. Besides, they are hard to maintain and not easily deployable as well. Failure in one part can bring the whole system down. higher database complexity, improper resource utilization, etc. To give you a better idea of what monolithic architecture is, here are some of its characteristics:

View more...

Data Fabric vs. Data Lake: Operational Comparison

Aggregated on: Thu Oct 21 2021 18:10:18 GMT+0000 (Coordinated Universal Time)

This article will focus on which is the most appropriate big data store for high-scale, real-time, operational use cases – data fabric vs data lake. It will also discuss data warehouses, as well as relational, and non-relational, databases. What Are Operational Use Cases? Data-intensive enterprises are driven by a broad array of real-time use cases requiring a high-scale, high-speed data architecture that can support millions of concurrent transactions. Examples include:

View more...

Best Mapping API: Mapbox, Google Maps, or OpenStreetMap?

Aggregated on: Thu Oct 21 2021 18:10:18 GMT+0000 (Coordinated Universal Time)

Google Maps has long been the go-to maps and location data API provider – and it makes sense. Google's solutions are robust and reliable, with a wealth of mapping data available for over 200 countries. With 1 billion monthly active users (and over 5 million active sites and apps using it), you would think that Google Maps is uncontestable. However, ever since Google hiked its Maps API prices back in 2018, developers have been turning to more affordable options. Is it possible to find a budget-friendly alternative to Google Maps without compromising on functionality? Let's find out. The Google Maps API Dilemma Google Maps APIs have left a bitter taste in the mouths of many developers. A price hike is understandable – but raising prices this drastically was a controversial move. Before the 2018 pricing change, if a website or app exceeded 25,000 dynamic map views per day, they would need to pay $0.50 for every 1,000 additional requests. That price rose to $5 per 1,000 requests: an increase of 1,400%.

View more...

How to Use the Circuit Breaker Functionality in Anypoint MQ

Aggregated on: Thu Oct 21 2021 18:10:18 GMT+0000 (Coordinated Universal Time)

Circuit breaker design pattern is used to detect failures and encapsulates the logic of preventing a failure from constantly recurring during maintenance, temporary external system failure, or unexpected system difficulties. Here's how it works and how you can use this functionality with Anypoint MQ. How Does Circuit Breaker Design Pattern Work? Circuit breaker handles faults that might take a variable amount of time to recover from when connecting to a remote service or resource. This can improve the stability and resiliency of an application.

View more...

Alluxio Use Cases Overview: Unify silos With Data Orchestration

Aggregated on: Thu Oct 21 2021 17:10:18 GMT+0000 (Coordinated Universal Time)

This blog is the first in a series introducing Alluxio as the data platform to unify data silos across heterogeneous environments. The next blog will include insights from PrestoDB committer Beinan Wang to uncover the value for analytics use cases, specifically with PrestoDB as the compute engine. The ability to quickly and easily access data and extract insights is increasingly important to any organization. With the explosion of data sources, the trends of cloud migration, and the fragmentation of technology stacks and vendors, there has been a huge demand for data infrastructure to achieve agility, cost-effectiveness, and desired performance. 

View more...

Improving Backend Performance Part 2/3: Using Database Indexes

Aggregated on: Thu Oct 21 2021 17:10:18 GMT+0000 (Coordinated Universal Time)

Database indexes are a concern of the developers. They have the potential to improve the performance of search and filter features that use an SQL query in the backend. In the second part of this series of articles, I'll show the impact that a database index has in speeding up filters using a Java web application developed with Spring Boot and Vaadin. Read part 1 of this series if you want to learn how the example application that we'll use here works. You can find the code on GitHub. Also, and if you prefer, I recorded a video version of this article:

View more...

Codeanywhere adventures - Getting started with developer process automation tooling (part 3)

Aggregated on: Thu Oct 21 2021 17:10:18 GMT+0000 (Coordinated Universal Time)

In the previous article in this series, we introduced the world of Codeanywhere, a cloud IDE and container development experience all available in just your browser. Are you ready for some more amazing, easy to use, developer tooling that requires not a single tooling installation and no configuration?

View more...

Vue PWA: A Progressive Web Application Development With Nuxt

Aggregated on: Thu Oct 21 2021 17:10:18 GMT+0000 (Coordinated Universal Time)

Did you know that 31% of all e-commerce sales come from mobile devices? And this number has not stopped increasing since 2010. As a web developer with an e-commerce store or working for an e-commerce owner, you should probably try to make the shopping experience for your (or client) mobile users optimal.

View more...

What Makes a Good Test Data Manager?

Aggregated on: Thu Oct 21 2021 16:40:18 GMT+0000 (Coordinated Universal Time)

This article was published with permission by Michiel Mulders. Have you implemented test data management at your organization? It will surely benefit you if your organization processes critical or sensitive business data. The importance of test data is emphasized by the fact that issues related to test data account for 15% of all software defects. If you’re looking to hiring a test data manager, read on. We will discuss exactly what a test data manager does, what skills a test data manager needs, and the benefits of hiring a test data manager.  

View more...

Getting Started With Robotic Process Automation

Aggregated on: Thu Oct 21 2021 16:40:18 GMT+0000 (Coordinated Universal Time)

Technologies such as artificial intelligence (AI), machine learning (ML), and natural language processing (NLP) have led the way to software robots that reduce the manual, time-consuming, and repetitive actions performed on digital platforms. The concept of automating tasks on digital platforms is called robotic process automation (RPA). RPA is a software robot that interacts with computer-centric processes and aims to introduce a digital workforce that performs repetitive tasks previously completed by humans. This Refcard introduces RPA technology, how it works, key components, and how to set up your environment.

View more...

All You Need To Know About Exception Handling In Selenium

Aggregated on: Thu Oct 21 2021 16:40:18 GMT+0000 (Coordinated Universal Time)

In the world of technology, exceptions are said to be as old as programming itself. The occurrence of an exception during the execution of code can result in unexpected behavior unless the exception is properly handled in the code. Exceptions are not bad but are a fundamental part of modern programming. Rather than having a fear of exceptions, it is important to know how to tackle which exception at what moment of time. Moving further, we would discuss how to handle exceptions elegantly and use exception handling to write clean code which is more maintainable. What is an Exception? The exception is a programmer’s commonly used term regardless of any specific programming language. ‘Exception’ as the name suggests are the events due to which the program ends abruptly without displaying an expected output.

View more...

Software Development Time Estimation: Best Ways of Calculation

Aggregated on: Thu Oct 21 2021 16:40:18 GMT+0000 (Coordinated Universal Time)

Have you ever been in a conversation where you are discussing a brilliant idea and all the details are clear and there is only a need to create software? You have a business idea that is easy to implement and you have the vendor you are going to outsource your project to. But here is the main question, how long will it take? Can you have it ready for next week? Next month? Year? This question is always a tough one to answer. So, how do you estimate the hours required for a software project in the right way? Estimation is a complex matter and can’t be precisely defined. Usually, there are lots of changeable factors that impact the result. Incorrect estimation leads to lost revenue, enlarged budget, missed business opportunities, and so on.

View more...

7 Top Open-Source Datasets to Train Natural Language Processing (NLP) and Text Models

Aggregated on: Thu Oct 21 2021 16:10:18 GMT+0000 (Coordinated Universal Time)

Using Datasets in Natural Language Processing (NLP) NLP is an exciting domain right now, especially in use-cases like AutoNLP with Hugging Face, but it is painfully difficult to master. The main problem with getting started with NLP is the dearth of proper guidance and the excessive breadth of the domain. It’s easy to get lost in various papers and code trying to take everything in. The thing to realize is that you cannot really learn everything when it comes to NLP as it is a vast field, but you can try to make incremental progress. And as you persevere, you might find that you know more than everyone else in the room. Just like everything else, the main thing here is taking those incremental steps.

View more...

Block and File Storage + Object and Cloud Storage

Aggregated on: Thu Oct 21 2021 16:10:18 GMT+0000 (Coordinated Universal Time)

Since the introduction of object and S3 cloud storage, people have attempted to use Object as File and to scale-out File as Object. Block style workloads on Object as a use case have not been achieved, until now. I had the opportunity to meet with Glen Olsen, Founder of Nexustorage during the 40th IT Press Tour.  Nexfs, the inaugural product from Nexustorage, is an automated data lifecycle solution presented as an intelligent pool of integrated tiers of Block, File, and Object/Cloud storage. There are numerous tradeoffs between Block and File Storage (BFS) and Object and Cloud Storage (OCS):

View more...

Deploy a Java application using Helm, Part 1

Aggregated on: Thu Oct 21 2021 15:10:18 GMT+0000 (Coordinated Universal Time)

To deploy enterprise Java applications with Red Hat JBoss Enterprise Application Platform (EAP) servers to Red Hat OpenShift, developers have usually needed to learn how to use OpenShift templates or Operators to specify Kubernetes and OpenShift resources such as build config, deployment, volume, environment variables, and application image. This article, the first of a two-part series, explains a simpler way to deploy an enterprise Java application to OpenShift using Helm charts, and how to connect the application to a PostgreSQL database. Helm: Simplifying application deployment on Kubernetes Deployment practices are not familiar to application developers because resource definition has traditionally been determined by the IT operations team. When moving rapidly into the DevOps era, developers need to take more responsibility to set appropriate resources in alignment with cloud microservices.

View more...

Scaling Kubernetes Clusters with Armory

Aggregated on: Thu Oct 21 2021 15:10:18 GMT+0000 (Coordinated Universal Time)

Overview Imagine if Amazon were unavailable for just one day each year. At that rate, they would have 99.7% availability, which seems fairly reasonable on the surface. In 2020, however, Amazon's revenue was nearly $400 billion. Living with 99.7% availability instead of 100% would cost Amazon more than $1 billion. Downtime—even just a little—will cost your business. We minimize downtime through redundancy. Building reliable systems out of unreliable components requires having spare components to replace the faulty ones. Still, though, it takes time to replace faulty components.

View more...

Hyperlambda, the fastest programming language in the world

Aggregated on: Thu Oct 21 2021 15:10:18 GMT+0000 (Coordinated Universal Time)

Hyperlambda is probably orders of magnitudes slower than most other programming languages in the world such as C#, Java, PHP, and Python - Still, when you're done with your project, I can pretty much guarantee you that your project will be blistering fast - Probably orders of magnitudes faster than anything you could possibly build in any other programming language - In addition to that it would scale hundreds of times better than a solution created with e.g. C#, Java, PHP, or Python. How on earth is this even possible? Well, let's try to understand it with an analogy originally created for children ... To understand how Hyperlambda can be both the slowest and the fastest programming language in the world, you must realise that it's almost impossible to build a perfect app using "low level" programming languages, such as C# or Java. In addition, some of your favourite C#/Java/PHP/Python/etc "abstractions" are so sub-optimal in low level programming languages, that it's almost impossible to believe in before you've been carefully explained their disadvantages. So let's start with the goto O/RM tool of choice for .Net developers; Entity Framework.

View more...

Unearthing Observability with New Relic

Aggregated on: Thu Oct 21 2021 01:25:18 GMT+0000 (Coordinated Universal Time)

Is observability mission critical at this point? The folks at New Relic think so. And they’re not alone, according to their recent whitepaper on observability 90% of respondents believe observability is strategically important to their business. It’s becoming increasingly difficult to understand what’s going on within software development organizations. New Relic’s GVP & GM Buddy Brewer and SVP Greg Perotto join the podcast to discuss observability best practices, how to avoid data silos, the value of telemetry across the entire software life cycle and the five key insights of New Relic’s observability report.

View more...

Use Socket.IO With Nuxt.js/Vue.js

Aggregated on: Wed Oct 20 2021 23:55:18 GMT+0000 (Coordinated Universal Time)

For one of my recent Nuxt.js projects, I had to use Socket.IO to send the data from the server to the users in real-time without reloading the whole page. Initially, I was using Vue.js, but then the client insisted on implementing Nuxt.js for the server-side rendering purpose. First, I used Axios as a middleware to send and receive HTTP requests. Axios is a great library to send and receive data without loading the whole page. It works great with Vue.js and Node.js. But the problem with Axios is that it only sends the response once with res.send or res.end method. If you try to send two or more times with these methods, then the app crashes.

View more...

A Java MicroProfile Application for Content Negotiation

Aggregated on: Wed Oct 20 2021 22:55:18 GMT+0000 (Coordinated Universal Time)

An HTTP server can use content negotiation to respond to different clients. Modern clients typically expect a JSON response. At times, a different format is required, such as XML for older clients or binary for newer ones. The process used to manage that challenge, as well as others like coping with numerous languages and even compressing HTTP requests, is known as content negotiation. In this article, we'll walk through the process of creating a small Java MicroProfile application as we explain how content negotiation works.

View more...

A Java MicroProfile Application for Content Negotiation

Aggregated on: Wed Oct 20 2021 22:25:18 GMT+0000 (Coordinated Universal Time)

An HTTP server can use content negotiation to respond to different clients. Modern clients typically expect a JSON response. At times, a different format is required, such as XML for older clients or binary for newer ones. The process used to manage that challenge, as well as others like coping with numerous languages and even compressing HTTP requests, is known as content negotiation. In this article, we'll walk through the process of creating a small Java MicroProfile application as we explain how content negotiation works.

View more...

Spring Boot File Upload Example With MultipartFile | Spring Boot Tutorial

Aggregated on: Wed Oct 20 2021 22:25:18 GMT+0000 (Coordinated Universal Time)

In the video below, we take a closer look at the Spring Boot file upload example with MultipartFile | Spring Boot Tutorial. Let's get started!

View more...

CI/CD With Azure DevOps

Aggregated on: Wed Oct 20 2021 22:25:18 GMT+0000 (Coordinated Universal Time)

Continuous integration and continuous deployment are an important part of modern software development practices and DevOps. It brings to software development teams a focus on fulfilling business requirements, code quality, and security as deployment steps are automated. Continuous integration (CI) represents a set of practices that drive development teams to implement small changes and check-in code to the version control repository frequently. The developer’s changes are validated by creating a build and running automated tests against the build. It put emphasis on test automation to check that the application is not broken whenever new commits are integrated into the main branch.

View more...

Spring Boot: @ConfigurationProperties, Property Validation Example

Aggregated on: Wed Oct 20 2021 21:55:18 GMT+0000 (Coordinated Universal Time)

In the video below, we take a closer look at Spring Boot @ConfigurationProperties, Property validation example. Let's get started!

View more...

How To Get Closer to Consistency in Microservice Architecture

Aggregated on: Wed Oct 20 2021 21:55:18 GMT+0000 (Coordinated Universal Time)

When it comes to transactions, the first thing that comes to mind is ACID. Actually ACID is an important 4-point concept: Atomicity:  Each statement in a transaction (to read, write, update or delete data) is treated as a single unit. Either the entire statement is executed, or none of it is executed. This property prevents data loss and corruption from occurring if, for example, if your streaming data source fails mid-stream. Consistency: Ensures that transactions only make changes to tables in predefined, predictable ways. Transactional consistency ensures that corruption or errors in your data do not create unintended consequences for the integrity of your table. Isolation: When multiple users are reading and writing from the same table all at once, isolation of their transactions ensures that the concurrent transactions don’t interfere with or affect one another. Each request can occur as though they were occurring one by one, even though they're actually occurring simultaneously. Durability: Ensures that changes to your data made by successfully executed transactions will be saved, even in the event of system failure. ACID makes sense in that every system has its own database and everything is in one module of codes.  However, in the microservice-based architectures, we have multiple loosely coupled modules where each one has its own database, transaction, and of course, ACID, but they are connected. There are still scenarios that involve multiple microservices, and the completion of the scenario depends on the completion of the tasks of each of these microservices. Ideally, all microservices perform their tasks correctly; but if one microservice fails, the whole scenario must be failed. Conceptually we need to have a general transaction between multiple independent microservices. 

View more...

My Top Ten Worst Scrum Anti-Patterns

Aggregated on: Wed Oct 20 2021 19:40:18 GMT+0000 (Coordinated Universal Time)

I recently was invited to a Scrum.org Webinar, and I picked a topic close to my heart: the worst Scrum anti-patterns. So, without further delay, here is my personal list of the meanest, baddest Scrum anti-patterns that will guarantee that your Scrum team will be kept shackles and perform well below its potential. #10: The Oversized Product Backlog The Product Backlog of your Scrum team comprises hundreds of entries, from user stories to ideas to hypotheses and experiments to documentation fragments; you name it. Dumping everything into the Product Backlog—probably in the name of transparency—poses a massive challenge for various reasons:

View more...

Adobe Document Services: Unpacking the October 2021 Release

Aggregated on: Wed Oct 20 2021 19:10:18 GMT+0000 (Coordinated Universal Time)

Earlier this month, the Adobe Document Services team released an update to our PDF Services API that specifically focuses on our Document Generation API. In this post, we’ll quickly go over these new features and how they can improve document generation workflows. We’ll also dive deeper into these new features and discuss them in future live streams as well. Release Notes Before we dive in, the latest release notes cover both migration steps (when required, today’s release does not), links to historical versions of the docs, as well as detailed change history. While we’re not talking about PDF Embed API today, that service has its own release notes page as well.

View more...

Data Versioning 101

Aggregated on: Wed Oct 20 2021 18:40:18 GMT+0000 (Coordinated Universal Time)

Data versioning is storing data as new copies after making changes to them so that it is possible to have different versions of such data and retrieve specific versions later. Each version of the data represents a change in the structure, contents, or condition of the data. A new version of a dataset may be created when an existing dataset has been reprocessed, corrected, or updated with more data.  In short, data versioning is a means to track changes associated with data. For example, let’s say a dataset that contained a list of all the countries of the world was stored in a database up to 1990. Starting from the collapse of the Soviet Union in 1991, it might be necessary to update or reprocess the dataset and any conclusions that resulted from it. After all, several countries have been created since 1990. 

View more...

Building a Real-Time Data Warehouse With TiDB and Pravega

Aggregated on: Wed Oct 20 2021 18:40:18 GMT+0000 (Coordinated Universal Time)

Companies with a lot of data rely on data warehouses for data processing and analytics. To achieve business agility, offline data warehouses are no longer sufficient, and real-time data warehouses are gradually taking over. Currently, real-time data warehouses often use Apache Flink to consume data from Apache Kafka and stream data into a database. However, because Kafka doesn't persist data in disks, in extreme cases, data is lost. After researching the databases and storage systems on the market, we found a more efficient and accurate real-time data warehouse solution: Pravega + TiDB.

View more...

Ensure Quality Code Without Sacrificing Development Speed

Aggregated on: Wed Oct 20 2021 18:10:18 GMT+0000 (Coordinated Universal Time)

The Outdated Iron Triangle When it comes to software development, what is quality? Is it the elegance of the code? Is it how well the software performs once deployed and operating at scale? Quality is all of that and more. Ultimately, quality software is defined by three simple measures. First, it works as planned. Second, it performs well within the scope of identified use cases. And third, it has a low rate of defects which means that the software produces very few, or no, errors when a user executes one of the application’s use cases. Many development organizations utilize a classic approach, such as the Iron Triangle, to influence quality. They either reduce scope, extend the delivery schedule, or throw more engineering resources at development. But none of those ultimately guarantees quality. Even if you limit the scope to a single function or use case, take an extra year to improve the efficiency of the code, and hire a hundred more developers, the quality of the finished application can still be poor. 

View more...

How To Secure MySQL 8 With SSL/TLS on Ubuntu 20.04

Aggregated on: Wed Oct 20 2021 17:40:18 GMT+0000 (Coordinated Universal Time)

This tutorial will show you how to secure MySQL connections with SSL/TLS on Ubuntu 20.04. Prerequisites A server running Ubuntu 20.04. A root password is set up on your server. Install MySQL 8 Server By default, MySQL server version 8 is included in the Ubuntu 20.04 default repository. Run the following command to install it.

View more...

What’s New in NodeJS v16?

Aggregated on: Wed Oct 20 2021 17:10:18 GMT+0000 (Coordinated Universal Time)

A week ago, the Node js latest version 16 had been rolled out, and it’s already making some vast headlines about it in our NodeJS developer community. Many new features have been introduced; however, mainly if you are a user of NodeJS 15, the new features are more like an upgrade to the last version and moving in the direction of the LTS branch. In other words, it can imply that it has become the bridge between Node 15 and the future version of NodeJS, Long term support Release.

View more...

Extending the Salesforce CLI with a Custom Plugin

Aggregated on: Wed Oct 20 2021 17:10:18 GMT+0000 (Coordinated Universal Time)

As more services move to the cloud and DevOps methodologies continue to evolve, more and more developers are getting comfortable with working in the terminal. Whereas traditional CLI commands like grep and cat are well-known tools for achieving small goals, more complicated tasks require more robust tooling. Nowadays, CLI programs come with richer interactive experiences. One such program is the Salesforce CLI, the command-line interface for Salesforce DX. It’s a CLI that helps simplify common operations when building an application for Salesforce developers. The Salesforce CLI itself is built on top of oclif—also from Salesforce—which is an open-source framework for building command-line interfaces. Oclif is written in TypeScript, and it has a very robust community supporting it. Best of all, it has an architecture that prioritizes plugin support, which enables users to extend the CLI for their own needs.

View more...

Cloud-Native 5G, MEC and OSS/BSS/OTT Telco with Apache Kafka and Kubernetes

Aggregated on: Wed Oct 20 2021 16:25:18 GMT+0000 (Coordinated Universal Time)

This post shares a slide deck and video recording for architectures and use-cases for event streaming with the open-source frameworks Kubernetes and Apache Kafka in the Telco sector. Telecom enterprises modernize their edge and hybrid cloud infrastructure with Kafka and Kubernetes to provide an elastic, scalable real-time infrastructure for high volumes of data. Demonstrated use cases include building 5G networks, NFV management and orchestration, proactive OSS network monitoring, integration with hybrid and multi-cloud BSS and OTT services.

View more...

Understanding Ransomware and How To Protect Against It?

Aggregated on: Wed Oct 20 2021 15:55:18 GMT+0000 (Coordinated Universal Time)

Ransomware has increasingly become a constant threat to all organizations. As we work on ramping up our defenses and building a strategic plan to counter cyberattacks, malicious actors launch even more sophisticated attacks, increasing the difficulty to defend. Ransomware is often designed to paralyze an organization, by expanding throughout the network. This threat costs organizations millions of dollars. In this blog, we are going to learn about a ransomware attack at length - how it works, how it’s launched, how to respond to it, and how to mitigate risk.

View more...

Using Binding Patterns in Ballerina

Aggregated on: Wed Oct 20 2021 15:55:18 GMT+0000 (Coordinated Universal Time)

In the previous article, we discussed the what and how of binding patterns in Ballerina. In this article, we will look into how binding patterns are employed in other language concepts in Ballerina.  The two main Ballerina language concepts that employ binding patterns can be identified as:

View more...

4 Benefits of Continuous Deployment

Aggregated on: Wed Oct 20 2021 15:25:18 GMT+0000 (Coordinated Universal Time)

Joel Test: 12 Steps to Better Code Can You Make a Build in One Step?

View more...

AWS Communism: Part 1 (How We Cut Our Load Balancing Cost by More Than 96%)

Aggregated on: Wed Oct 20 2021 15:25:18 GMT+0000 (Coordinated Universal Time)

Recently, Cloudflare announced their object storage service Cloudflare R2 and got much buzz from the community. Essentially, they solve a huge pain point by removing egress traffic cost from the content hosting equation. However, there are use cases where it's not as easy to remove AWS' exact-but-not-cheap pricing from the game. In our series "AWS Communism", we want to show yet another technique for cutting your AWS bill – resource sharing.

View more...

Learn multithreading and async in 1 minute with Hyperlambda

Aggregated on: Wed Oct 20 2021 12:55:18 GMT+0000 (Coordinated Universal Time)

For everyone having done multithreading and async programming, it's fairly obvious that the amount of complexity required to (correctly) implement threading and async increases the cognitive requirements to understand the codebase to sometimes unfathomable amounts. Typically, this results in difficult to track down bugs, and over time what we often refer to as "spaghetti code" or "the big ball of mud". To put this into context, I'd like to put forth a statement in regards to this. Everyone who (falsely) believes they understand threading and async, don't understand threading and async!

View more...

Database Testing Made Simple, Efficient and Fast.

Aggregated on: Wed Oct 20 2021 07:00:35 GMT+0000 (Coordinated Universal Time)

In two previous articles (here and here) I argued for writing unit tests that target the database. I made the case that tests which run a single SQL statement from a Java backend should be considered unit tests. After all, they target an isolated unit of behavior and validate often complex logic in a different language (SQL). The Java code invoked by such a test merely acts as a transport layer. You need a running database to properly test such code. Mocking won’t do and neither should you relegate the queries to a few global scenarios in the top of the pyramid. They belong in the bottom of the pyramid and should be numerous, small and fast. Speed is a bottleneck if you reach for decent coverage of database code. It’s expensive to set up, run and maintain. All test code carries a maintenance liability. It loses its usefulness when the ecosystem around it changes, which is the second after its release. Database tests carry the extra burden of provisioning up-to-date schemas and test data. To ease the overall burden, always look to the following three: simplicity, efficiency, and speed.

View more...

5 JetBrains Plugins to Upgrade Your Built-In Git Support

Aggregated on: Tue Oct 19 2021 23:41:55 GMT+0000 (Coordinated Universal Time)

The Git plugin that comes bundled with all JetBrains IDEs is actually quite impressive, it's a full-blown Git client in its own right with almost all the features of a standalone client such as SourceTree, Tower, or GitKraken but built into the IDE. But there are even more features you can enhance your IDE’s Git support with - allow me to present to you 5 plugins that build on top of Git and supercharge it with cool new superpowers!

View more...

SOAP-Apache CXF Integration With Camunda Application

Aggregated on: Tue Oct 19 2021 23:41:55 GMT+0000 (Coordinated Universal Time)

The integration is done using Apache-CXF libraries with Camunda Spring boot as a dependency cxf-spring-boot-starter-jaxwsin the POM.xml file. The message being delivered to Camunda is modeled as XML- SOAP format and posted through SOAP-UI to Camunda. The Camunda application will receive POJO classes as a request. Prerequisites Eclipse (any version) with Maven capabilities Java 8+ SOAP-UI Camunda Installing Eclipse-IDE on Windows Visit the Eclipse Foundation website. Download the eclipse-inst-jre-win64.exe file and run the eclipse installer. Select Eclipse IDE for Eclipse committers and install. Creating a Maven Project in Eclipse IDE 1. Open the Eclipse IDE.

View more...

Binding Patterns in Ballerina

Aggregated on: Tue Oct 19 2021 23:41:55 GMT+0000 (Coordinated Universal Time)

The term "binding pattern" in Ballerina denotes a way of allowing different parts of a single structured value to have each of its parts assigned to separate variables at the same time given that all variables in the binding pattern are distinct. The concept of binding patterns makes it easier to extract information, especially from structured values in a much cleaner way.  Shown below is a typical example of a binding pattern where fields name and age of the Person type record named tom are being matched and assigned to variables named firstName and personAge.

View more...

Data Center Failures and CRDB Replication

Aggregated on: Tue Oct 19 2021 23:41:55 GMT+0000 (Coordinated Universal Time)

Executive Summary The purpose of this document is to explain how replication of data within CockroachDB can be used to tolerate various failure scenarios and the impacts to query execution times. This simulation will explore the effect of different replication factors on a database cluster that spans multiple Availability Zones in multiple Regions. Overall, more replicas allows for more nodes to be down at the same time, while both R=5 and R=7 allow for the loss of an entire region. But, counterintuitively, R=7 only allows for a single Availability Zone to be lost, while R=5 allows for two.

View more...