News Aggregator


Exceptions in Lambdas

Aggregated on: 2022-10-20 15:43:30

Java introduced the concept of checked exceptions. The idea of forcing developers to manage exceptions was revolutionary compared to the earlier approaches. Nowadays, Java remains the only widespread language to offer checked exceptions. For example, every exception in Kotlin is unchecked.

View more...

How to Use SuperTokens in a VueJS App With Your Own UI

Aggregated on: 2022-10-20 14:43:30

This post will guide you on how to add authentication to a VueJS app with SuperTokens using your own UI. We will be building our own authentication forms and will be using supertokens-web-js to make those forms work. What Is SuperTokens? SuperTokens is an open-source project that lets you quickly add authentication to your app. It offers various authentication methods (called recipes).

View more...

Using Global Cloud Load Balancer to Route User Requests to App Instances

Aggregated on: 2022-10-20 03:28:30

Ahoy, Mateys!  In my last two articles, I showed you how to deploy microservice instances across several cloud regions and how to set up a geo-distributed API layer. 

View more...

Using OAuth in API Integrations With Python, REST, and HL7 FHIR

Aggregated on: 2022-10-20 00:43:30

OAuth is often employed in processes requiring permissions to be granted to front-end applications and end users. Yet what we typically need in API systems integrations is a way to secure connections between the integration middleware and backend systems without a need for any ongoing human interactions. OAuth can be a good choice for that scenario. This article shows how it can be achieved in Python with backend systems using REST and HL7 FHIR.

View more...

How To Integrate Grafana in Our Internal Tools/Admin Panels Using AuthProxy

Aggregated on: 2022-10-19 23:13:30

Grafana is an amazing charting tool, as it can provide beautiful charts and visualization for data. Integrating Grafana charts with internal tools can unlock great potential. Internal tools are custom dashboards, admin panels, and CRUD apps that enable teams to automate processes. Grafana comes with built-in authentication. To view its dashboard, the user has to go through its login screen.

View more...

IBM App Connect Operators

Aggregated on: 2022-10-19 20:13:30

If you’re relatively new to Kubernetes, or not entirely sure what an Operator is, and why IBM created one for IBM App Connect, this post is for you.  You do not have to use the Operator to use IBM App Connect in containers. However, we aim to show how the Operator significantly simplifies Kubernetes deployment.

View more...

Data Modeling in Cassandra and Astra DB

Aggregated on: 2022-10-19 19:28:30

What does it take to build an efficient and sound data model for Apache Cassandra and DataStax Astra DB? Where would one start? Are there any data modeling rules to follow? Can it be done consistently time and time again? The answers to these and many other questions can be found in the Cassandra data modeling methodology. In this post, we present a high-level overview of the data modeling methodology for Cassandra and Astra DB, and share over half a dozen complete data modeling examples from various real-life domains. We apply the methodology to create Cassandra and Astra DB data models for IoT, messaging data, digital library, investment portfolio, time series, shopping cart, and order management. We even provide our datasets and queries for you to try.

View more...

Balancing Technical Debt and Feature Development With Service Level Objectives

Aggregated on: 2022-10-19 19:28:30

If we ask for a simple explanation of tech debt and the cause of it, generally, we hear something along the lines of:  Tech debt is redoing or refactoring your team's work in a less-than-ideal way. 

View more...

Trick the JVM for Maximum Performance With Megamorphic Call Sites

Aggregated on: 2022-10-19 18:58:30

The JVM does great stuff to let our Java applications run the fastest way possible. Most of the time, you don't have to care about the internals, but if you really need to get the best performance, you need to take into account how JVM works. It's not the goal of this article to give a detailed introduction to this topic but merely to show how our design can impact performance and how you can work around some issues which arise. An important aspect of performance optimization is inlining, i.e. the JIT replaces a method call with the code that will be executed by the method. For that to work, the method must be short, and it must be clear what the method is called. This is unfortunately not trivial as basically all methods can be overloaded, so the JVM does some run-time analysis and then makes some predictions. It basically distinguishes between monomorphic call sites, which always call the same method; bimorphic ones, which are optimized for two different targets; and call sites calling with more than two targets, which are called megamorphic, where fewer optimizations are applied. This analysis and the resulting optimization are done for each call site individually.

View more...

Can You Beat the AI? How to Quickly Deploy TinyML on MCUs Using TensorFlow Lite Micro

Aggregated on: 2022-10-19 17:58:30

Are you curious about artificial intelligence (AI) and machine learning (ML)? Do you want to know how to use it on the microcontrollers you already work with? In this article, we provide you with an introduction to ML on microcontrollers. This topic is also known as tiny machine learning (TinyML). Get ready for losing against an ESP-EYE at the rock, paper, scissors. You will learn about data collection and processing, how to design and train an AI and how to get it running on the MCU. This example provides you with all you need to do your own TinyML project from start to end. Why Should I Care About TinyML? Surely you’ve heard of tech companies such as DeepMind and OpenAI. They dominate the ML domain with experts and GPU power. To give a sense of scale, the best AIs, such as those used by Google Translate, need months of training. They use hundreds of high-performance GPUs in parallel. TinyML turns the tables somewhat by going small. Because of memory limitations, large AI models don’t fit onto microcontrollers. The figure below shows the disparity between the hardware requirements.

View more...

O11y Guide: Keeping Your Cloud-Native Observability Options Open

Aggregated on: 2022-10-19 16:58:30

This is the fourth article in the series covering my journey into the world of cloud-native observability. If you missed any of the previous articles, head on back to the introduction for a quick update. After laying out the groundwork for this series in the initial article, I spent some time in the second article sharing who the observability players are. I also discussed the teams that these players are on in this world of cloud-native o11y. For the third article, I looked at the ongoing discussion around monitoring pillars versus phases.

View more...

Nearest Neighbor Embeddings Search With Qdrant and FiftyOne

Aggregated on: 2022-10-19 13:13:30

Neural network embeddings are a low-dimensional representation of input data that gives rise to various applications. Embeddings have some interesting capabilities, as they can capture the semantics of the data points. This is especially useful for unstructured data like images and videos so that you can encode not only pixel similarities but also some more complex relationships. Embeddings from the BDD100K dataset were visualized using FiftyOne and Plotly. Performing searches over these embeddings gives rise to many use cases like classification, building up recommendation systems, or even anomaly detection. One of the primary benefits of performing a nearest-neighbor search on embeddings to accomplish these tasks is that there is no need to create a custom network for every new problem; you can often use pre-trained models. Using the embeddings generated by some publicly available models is possiblewithout any further finetuning.

View more...

The Heart of the Data Mesh Beats Real-Time With Apache Kafka

Aggregated on: 2022-10-19 03:28:29

If there were a buzzword of the hour, it would undoubtedly be "data mesh!" This new architectural paradigm unlocks analytic and transactional data at scale and enables rapid access to an ever-growing number of distributed domain datasets for various usage scenarios. The data mesh addresses the most common weaknesses of the traditional centralized data lake or data platform architecture. And the heart of a decentralized data mesh infrastructure must be real-time, reliable, and scalable. Learn how the de facto standard for data streaming, Apache Kafka, plays a crucial role in building a data mesh. There Is No Single Technology or Product for a Data Mesh! This post explores how Apache Kafka, as an open and scalable decentralized real-time platform, can be the basis of a data mesh infrastructure and — complemented by many other data platforms like a data warehouse, data lake, and lakehouse — solve real business problems.

View more...

Tips to Make Your Retrospectives Meaningful

Aggregated on: 2022-10-19 02:58:29

If done right, retrospectives can help you inspect past actions, help adapt to future requirements and guide teams towards continuous improvement. However, organizations find it difficult to adopt the right mindset to execute retrospectives effectively. This article will help you understand what retrospectives are and provide valuable tips to make your retrospectives meaningful. This article will cover: 

View more...

How To Create Asynchronous and Retryable Methods With Failover Support

Aggregated on: 2022-10-19 01:43:29

While developing an application, we need to make some processing more robust and less fault-tolerant, especially when requesting remote services that may remain down for a long duration. In this article, we will introduce a new framework that aims to provide a declarative non-blocking retry support for methods in Spring-based applications using annotations.

View more...

CockroachDB TIL: Volume 10

Aggregated on: 2022-10-19 01:28:29

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 Volume 7 Volume 8 Volume 9 Topics Topic 1: Generating ULID strings in CockroachDB Topic 2: Enable CLI tab completion for column names Topic 3: Using Postico with CockroachDB Serverless Topic 4: Nuances with DISCARD ALL Topic 5: Npgsql and follower reads Bonus Topic: Npgsql and pgpass Topic 1: Generating ULID Strings in CockroachDB CockroachDB adopted ULID several releases ago as yet another version of UUID type. There is no explicit ULID type in CockroachDB. There are functions available to generate ULID in UUID format. So in case you need to generate lexicographically sortable IDs, you can use the built-in gen_random_ulid() function. Also, there are several conversion functions to convert from ULID to UUID; i.e., ulid_to_uuid and vice versa, uuid_to_ulid. One point of friction in CockroachDB is where one needs to generate an actual ULID string and not a UUID-formatted ULID. This may or may not be obvious. Let's take a look:

View more...

Angular 11 + Firebase Cloud Messaging Push Notifications

Aggregated on: 2022-10-18 22:28:29

What Are Push Notifications? A push notification is a popup message similar to an SMS. Push notifications work the same as SMS text messages and mobile alerts.  This provides the ability to receive messages pushed to them from a server, whether or not the web app is in the foreground, or even currently loaded, on a user agent. Second, look for versions needed for Push Notifications

View more...

HTTP-Based OOP, Inheritance, and Polymorphism

Aggregated on: 2022-10-18 20:28:29

This might sound like a joke, but it's actually not. First, let's define inheritance. Inheritance is the ability to use polymorphism to override a method with another implementation. You inherit from a class, and you override one of its virtual functions. This results in that code having an object that will no longer invoke the old base class method, but rather the new overridden method. Kind of easy, right? Polymorphism Is the Ability To Have Old Code Invoke New Code Well, there's nothing intrinsically special about class-based OOP that prevents you from implementing the above in a functional context. In a functional programming language, you can have a reference to a function, and replace the function it's pointing to, before passing in your function reference to some method in need of a function with the specified signature. This achieves the exact same result as "classic polymorphism."

View more...

Edit Someone Else’s Website: contenteditable and designMode

Aggregated on: 2022-10-18 19:28:29

The first time I opened up my DevTools and changed the contents of a website, I actually thought that I had hacked it. I thought, “Oh my gosh, what sort of crazy powers have I unlocked?” Little did I know that it was just a local change that would go away when I reload the browser. Still, it is kind of cool to think we can do that.

View more...

Reducing React Dev Server to 213ms — From Create React App to Vite v3 Migration

Aggregated on: 2022-10-18 17:13:29

Developer experience is important. Having a fast and reliable development and build solution is important as the code that is written and how it performs. Recently, I saw a significant slow-down in a react app that its development and build system was based on the latest CRA package (create react app/react-script). I improved the developer experience in both development and build for production from afew seconds to a mere 213ms from 3277ms (dev server) —  That's an improvement of 95% in server uptime. In this article, I share my steps for migrating CRA (create react app) to use Vite while highlighting the benefits.

View more...

Avoid Data Silos in Presto in Meta: The Journey From Raptor to RaptorX

Aggregated on: 2022-10-18 16:43:29

Raptor is a Presto connector (presto-raptor) used to power some critical interactive query workloads in Meta (previously Facebook). Though referred to in the ICDE 2019 paper Presto: SQL on Everything, it remains somewhat mysterious to many Presto users because there is no available documentation for this feature. This article will shed some light on the history of Raptor and why Meta eventually replaced it in favor of a new architecture based on local caching, namely RaptorX. The Story of Raptor Generally speaking, Presto, as a query engine, does not own storage. Instead, connectors were developed to query different external data sources. This framework is very flexible, but it is hard to offer low latency guarantees in disaggregated compute and storage architectures. Network and storage latency adds difficulty in avoiding variability. To address this limitation, Raptor was designed as a shared-nothing storage engine for Presto.

View more...

An Overview of the Tools for Developing on Flow & Cadence

Aggregated on: 2022-10-18 12:43:29

Smart contract development is no different than other types of software development. Code is written to perform a certain task, and there are tools that help make this process easier. The Ethereum ecosystem contains many mature tools to help build Web3 projects, but what about a newer ecosystem, such as Flow? If you’ve been following along with this series so far, you’ll know that the Flow blockchain is optimized for digital asset creation and management. Additionally, its smart contract language, Cadence, improves upon other languages’ pitfalls through its resource-based approach and a strong, static type system.

View more...

Debezium Server With PostgreSQL and Redis Stream

Aggregated on: 2022-10-17 21:43:28

Debezium is a great tool for capturing the row-level changes that happen on a Database and streaming those changes to a broker of our choice. Since this functionality stays within the boundaries of a Database, it helps on keeping our applications simple. For example, there is no need for an application to emit events on any database interactions. Debezium will monitor the row changes and will cast the events. Based on the broker solution used with Debezium a consumer can subscribe to the broker and thus receive the changes.

View more...

Top Five Google Cloud Database Services — Part 1 (SQL)

Aggregated on: 2022-10-17 20:28:29

Google Cloud Platform offers various cloud database tools and services based on what a company needs to accomplish with them. Thus, the different tools have different purposes. In this article, we'll look at the top five Google Cloud database services/tools that support SQL in one form or another. I'll take you through each of their features and benefits and provide some code snippets. Above all, I'll briefly explain when you can use them. Here is what we will cover:

View more...

Querydsl vs. JPA Criteria, Part 2: Metamodel

Aggregated on: 2022-10-17 20:28:29

This is the second article in my series dedicated to the Querydsl framework. I planned to shed light on the custom queries, as promised in the first article, but I decided to explain the metamodel usage first in order to simplify the explanation later on. So far, this series contains these articles:

View more...

Compatibility of GitLab on CockroachDB and YugabyteDB (II) — Read and Write Scenario Testing

Aggregated on: 2022-10-17 19:58:28

In the previous article, "System Initialization," we concluded that CockroachDB could not be started because it could not automatically create database schema through GitLab's setup program, while YugabyteDB could start GitLab normally with all normal initialization steps. In this test, we first imported a standard GitLab library and the underlying data into these two databases to see if GitLab could be started typically. Then we selected a part of GitLab's core business scenarios to do a comparison test to see how compatible they are.

View more...

Compatibility of GitLab on CockroachDB and YugabyteDB (I) — System Initialization

Aggregated on: 2022-10-17 19:28:28

GitLab is a globally popular source code management tool. In earlier versions, users could choose either MySQL or PostgreSQL, but since version 12.1.0, the official support for MySQL has been completely dropped. Many features in the new version of GitLab are based on PostgreSQL, the benchmark for many products that use PostgreSQL as the underlying data store.

View more...

Troubleshooting Deadlock in an Apache Open-Source Library

Aggregated on: 2022-10-17 19:28:28

Apache PDFBox is a popular open-source library that facilitates Java applications to work with PDF documents. Recently, we encountered a deadlock that surfaced in this library. In this post, we have shared how we troubleshot and identified the root cause of the problem. What Is Deadlock? First, let’s try to understand what "deadlock" means. Several technical definitions aren’t clear. The "deadlock" definition is one among them. Deadlock’s definition goes like this: 

View more...

Jira Add-Ons for Better Software Delivery

Aggregated on: 2022-10-17 18:58:28

There’s no denying that Jira is one of the best project management solutions for software development. The platform is feature-rich and exceptionally flexible when it comes to bending it to meet your needs through custom scripts or integrations.  That said, there’s always room for improvement, and the Atlassian Marketplace is one of the best places to start your Jira transformation. 

View more...

Making of Unreliable Systems

Aggregated on: 2022-10-17 17:43:28

Knowing anti-patterns and pitfalls is often more useful than knowing patterns when designing a system, so I decided to write this blog post about factors that I think will lead to producing unreliable systems from my experiences in designing (mostly) distributed enterprise applications.I’ll be pleased to know your related experiences and comments on the matter. What Is Modeling? The human brain is a pattern-seeking device. However, it’s a costly process, and the main goal of thinking is to terminate/resolve what caused this process to start in the first place; so it has developed several mechanisms to prevent it from happening too often; the one related to our discussion here is the mental model. Reality is complex, chaotic, and too messy for our limited brain capabilities and resources to comprehend as it is (if that’s even possible); so our minds will try to create an alternative reality which is very simple and (most of the time) easily understandable, and that’s what modeling is all about! from how we think about how nature works, in science for example, to proper social behavior, to what to be afraid of or seek for, all are the results of our mental model. It is noteworthy that models are neither objective reality nor meant to be so!

View more...

One Hundred Years of Hate [Comic]

Aggregated on: 2022-10-17 17:13:28

View more...

How to Move IBM App Connect Enterprise to Containers

Aggregated on: 2022-10-17 02:13:28

This article is part of a series. For the previous article, see how we use ODBC as an example to show how to connect to databases from IBM App Connect Enterprise Containers. This article explains how to install the latest version of the IBM App Connect Operator on an Amazon EKS cluster, and deploy an integration using it. It is part of a broader series on moving to IBM App Connect on containers.

View more...

How to Create a Chatbot Using Azure Bot Service: Step-by-Step Instructions

Aggregated on: 2022-10-17 01:43:28

Messengers, network services, and other software cannot go without bots. In software, a bot is an application designed to automate (or execute, according to a preset script) an action created at a user’s request. In this article, Daniil Mikhov, .NET Developer at NIX United, will look at an example of creating a chatbot using Microsoft's Azure Bot Service. The article will be helpful for anyone who wants to develop bots using the service. Why Azure Bot Service? The advantage of developing bots on Azure Bot Services is the high level of Microsoft support for its products. The company's experts actively communicate with the community and promptly identify and fix bugs in their services. In addition, Microsoft provides the ability to create custom JSON files to work with some messengers’ API, allowing you many possibilities when creating bots.

View more...

4 Database Scaling Solutions You Need to Know

Aggregated on: 2022-10-17 00:43:28

You have launched your application with an intuitive, user-friendly UI. But if your application is experiencing a load problem, it will frustrate your end customers while using it. Chances are the issue is not within the application but with the database. According to a survey, 38% of database professionals reported database downtime as the significant issue that kept them up at night. The downtime could be due to any number of issues, including improper database configuration, poor load handling, database queries being timed out, and so on.  In this article, we will discuss whether you need to scale your database and how to tackle database scalability issues. Let’s begin with the most obvious question — why database scaling? 

View more...

Can There Be Testers in Scrum?

Aggregated on: 2022-10-17 00:43:28

There is no doubt that Scrum is one of the most important tools in the search for business agility for teams in any context, and in tackling challenges of varying complexity. As explained by Forbes, business agility enables organizations to thrive in a world of rapid and unpredictable change, helping them to adapt their business management models and internal processes to make them more efficient. All of this without compromising quality, and being truly able to maintain their competitive advantage.

View more...

OTT Application Testing: What It Is and Why You Can’t Do Without It

Aggregated on: 2022-10-15 21:28:27

Over two years ago, the COVID-19 pandemic completely changed the business landscape for dozens of industries. For example, the eCommerce industry saw a meteoric rise, while cinemas and theatres have not yet fully recovered from the multiple nationwide lockdowns. One of the industries whose rapid growth was also triggered by the coronavirus pandemic is the OTT or Over-the-Top industry. For millions of people stuck at home for months on end, with little to no social interaction, OTT services have become the go-to entertainment channel. Subsequently, the number of available streaming services also skyrocketed, and new players are regularly unveiled.

View more...

What Is Screen Scraping?

Aggregated on: 2022-10-15 20:43:27

Have you ever thought of extracting the UI elements present on your screen? This can be done using a simple method called Screen Scraping. Let us begin by understanding the concept of Screen Scraping. What Is Screen Scraping? Screen scraping is a technique used to fetch the UI elements on the screen which can be used to feed other applications. For example, scraping mark sheets of various students and using them to calculate the overall result of a school through software. 

View more...

What Do The Most Popular Programming Languages Reveal About Engineering Teams Today?

Aggregated on: 2022-10-15 19:13:27

The software industry is going through some major shifts. Every company has to do more with less, while still moving incredibly fast. The result is that more engineering teams are choosing efficient growth, over growth at all costs. Among scalability and efficiency, safety has become a top requirement for developers when it comes to choosing programming languages and tools. This is what I’ve observed after analyzing the 25 most popular programming languages on CircleCI.  Teams are balancing product-market fit with scalability and safety, ultimately choosing tools that allow them to collaborate effectively while enabling guardrails that prevent as many errors as possible. 

View more...

Case Studies: Cloud-Native Data Streaming for Data Warehouse Modernization

Aggregated on: 2022-10-15 18:13:27

Every project is different. This is true for data streaming, analytics, and other software development. The following shows three case studies with significantly different architectures and technologies for data warehouse modernization. The examples come from various verticals: software and cloud business, financial services, logistics and transportation, and the travel and accommodation industry. Confluent: Data Warehouse Modernization From Batch ETL With Stitch to Streaming ETL With Kafka The article "Streaming ETL SFDC Data for Real-Time Customer Analytics" explores how Confluent eats its dog food to modernize the internal data warehouse pipeline.

View more...

When Breakpoints Don't Break

Aggregated on: 2022-10-15 17:43:27

I discussed tracepoints quite a bit in my blog and videos. They are wonderful, but I feel the nuance of non-breaking is a bit lost. The true power of this amazing tool is hidden due to our debugging habits and our preconceived notions about debugging. It’s indeed difficult to make the mental shift required for these tools. The payoff for that mental shift is tremendous when dealing with “weird” bugs. Especially in large systems and with concurrency related issues. Let’s go back to the basics. What’s a non-breaking breakpoint?

View more...

Microfrontends: Microservices for the Frontend

Aggregated on: 2022-10-15 17:43:27

Microservices are a popular way to build small, autonomous teams that can work independently. Unfortunately, by their very nature, microservices only work in the backend. Even with the best microservice architecture, frontend development still requires a high degree of interdependence, and this introduces coupling and communication overhead that can slow down everyone. Can we take microservice architecture patterns and apply them to the frontend? It turns out we can. Companies such as Netflix, Zalando, and Capital One have pushed the pattern to the front, laying the groundwork for microfrontends. This article will explore microfrontends, their benefits and disadvantages, and how they differ from traditional microservices.

View more...

1,000 Jenkins Jobs: A DevOps Journey to Nirvana

Aggregated on: 2022-10-15 17:13:27

Living the DevOps Dream (Almost) My life heading a DevOps team theoretically should have been a dream. We all were in high demand and paid incredibly well for simply being better at Googling stuff than most people. And the best part is that no one really knew we existed... at least until things didn’t work.  And therein lay the rub. Nothing ever works all the time. So our Slack on-call channel was like a booby-trapped war zone, literally exploding with repetitive messages such as:

View more...

Java Is Very Fast, if You Don’t Create Many Objects

Aggregated on: 2022-10-15 17:13:27

This article looks at a benchmark passing events over TCP/IP at 4 billion events per minute using the net.openhft.chronicle.wire.channel package in Chronicle Wire (open source) and why we aim to avoid object allocations.  One of the key optimisations is creating almost no garbage. Allocation is supposed to be a very cheap operation, and garbage collection of very short-lived objects is also very cheap. Does not allocating really make such a difference? What difference does one small object per event (44 bytes) make to the performance in a throughput test where GC pauses are amortised?

View more...

How to Use QueryParamsHandling in Angular

Aggregated on: 2022-10-15 17:13:27

When building single-page applications, it is common for the URL to change without the page actually reloading. This can create problems when trying to access query parameters from the URL. The QueryParamsHandling feature in Angular can help solve this problem. QueryParamsHandling is a routing strategy that allows developers to control how query parameters are handled when the URL changes.

View more...

Main Benefits of a Technical Blog

Aggregated on: 2022-10-15 14:43:27

This blog is a special edition because it is my 100th blog! I will explain what this blog has given me in the past five years. If you are planning to start a blog of yourself, you may use this list of benefits in order to get you motivated to get started. 1. Introduction In the beginning of September, I already celebrated the fifth anniversary of my blog. Now I publish my 100th blog and I am pretty proud of it. It seems not so long ago that I started my blog, but on the other hand, it also feels like I am doing this for a long time. At least, I cannot imagine a life without my blog anymore. In the beginning, I really suffered of the imposter syndrome: I posted blogs, but did not let anyone in my direct environment know that I had a blog. After a few months, I let this feeling behind myself and let the world know that I write technical content. In those five years, I only had one or two negative comments, but many positive comments and I really do not bother about the negative ones. In the next section, I will try to list some of the benefits of a technical blog and if you would like to start with a blog yourself, do read Why Start a Technical Blog. Enjoy this post and up to the next five years!

View more...

Tips for Developing a Screen Recorder

Aggregated on: 2022-10-15 03:13:27

Let's face it. Sometimes it can be difficult for our app users to find a specific app function when our apps are loaded with all kinds of functions. Many of us tend to write up a guide detailing each function found in the app, but — honestly speaking — users don't really have the time or patience to read through long guides, and not all guides are user-friendly, either. Sometimes it's faster to play about with a function than it is to look it up and learn about it. But that creates the possibility that users are not using the functions of our app to its full potential. Luckily, making a screen recording is a great way of showing users how functions work, step by step.

View more...

Using Databases With High-Performance Event Streaming: Critical Considerations

Aggregated on: 2022-10-15 02:43:27

In an earlier article I talked about comparing distributed databases in general. All of those considerations remain salient for choosing a database right for your use case. Yet for today, let’s focus in on a particular aspect of capability: whether a database is a strong fit for an event streaming architecture.  The transition from batch-oriented processing to event streaming architectures is at the heart of what’s fundamentally shifting in this next tech cycle. Kafka was initially released in 2011, around the same era as the early NoSQL databases. Pulsar was slightly later, being invented at Yahoo in 2013. Many database architectures long predate the event streaming revolution, and their fundamental design decisions may be an anti-pattern for use with event streaming. 

View more...

The Journey to a Cloud Data Protection Strategy

Aggregated on: 2022-10-15 02:13:27

The journey to a comprehensive data protection strategy should include a focus on enabling the business through security best practices and specific data protection use cases that are relevant. In essence, secure the data today while building and implementing the overall data protection plan for the future. This article highlights three specific data protection use cases that can be implemented as part of an overall strategy. To summarize these use cases: Insider threats: Detect and prevent malicious insiders from data exfiltration Phishing attacks: Mitigate impersonation with multi-factor authentication Data leaks: Detect and mitigate overexposed resources and assets A General Approach to Data Protection Data protection is a critical issue for all organizations that use the cloud to store data electronically. The goal of a comprehensive data protection strategy is to ensure the security and confidentiality of an organization's data while minimizing the impact of data breaches. There are a number of technical and organizational measures that can be taken to protect data. In general, these measures include data encryption, data backup and recovery, access control, and user education. 

View more...

Learn Database Read/Write Splitting Using Your Browser

Aggregated on: 2022-10-14 16:58:27

Read/write splitting is a technique to route reads and writes to multiple database servers, allowing you to perform query-based load balancing. Implementing this at the application level is hard because it couples code or configuration parameters to the underlying database topology. For example, you might have to define different connection pools for each server in the database cluster. MariaDB MaxScale is an advanced database proxy that can be used as a read/write splitter that routes SELECT statements to replica nodes and INSERT/UPDATE/DELETE statements to primary nodes. This happens automatically without having to change your application code or even configuration—with MaxScale, the database looks like a single-node database to your application.

View more...

TSQA 2022: Test Automation Code and Strategy

Aggregated on: 2022-10-14 13:43:27

In March, Abstracta's Senior Leader, Matías Fornara, and I had the opportunity to speak at the Triangle Software Quality Association(TSQA) 2022 Conference. TSQA is a non-profit, volunteer-led organization dedicated to promoting software quality practices through networking, training, and professional development opportunities. The TSQA conference takes place once a year, and leaders from all over the world get together to share cutting-edge knowledge, emerging technologies, and trends in the test and quality assurance industry.

View more...