News Aggregator


Check if an Object Contains All Keys in an Array in JavaScript

Aggregated on: 2022-05-10 19:50:50

Sometimes in JavaScript, we have an object which we need to conform to a specific set of keys. This is possible through type enforcement in TypeScript, but if we want to do certain things if the keys don't exist, then we have to take a different approach. For example, suppose we are receiving the following object from an array, where firstName, lastName, and age are all needed for an operation we want to complete. For example

View more...

After COVID, Developers Really Are the New Kingmakers

Aggregated on: 2022-05-10 19:50:50

Several years ago, pre-COVID, I wrote the article Developers are the New Kingmakers. Today, companies see the value of developers as being even greater. Since the pandemic began, we've seen a renewed focus on digital transformation. Companies and industries are transforming two to three times faster than they were prior to COVID. Businesses have moved online and become more data-driven than ever before. This has created a demand for application development and data analytics skills.

View more...

Path-Based Routing in Render With Kong API Gateway

Aggregated on: 2022-05-10 19:50:50

If you’re building a microservice-backed application, a key benefit is separating the concerns of your application across individual microservices, each with its own ability to scale and encapsulate different functionality. The frontend—ostensibly a single-page application running in your user’s browser—will need access to the microservices that make up your web application. Each service could be directly accessible to the public web, but that adds security concerns. An API gateway, however, allows for a centralized layer to handle concerns like authentication, traffic monitoring, or request and response transformations. API gateways are also a great way to leverage rate limiting and caching to improve the resilience and performance of your application. 

View more...

How to Determine if Microservices Architecture Is Right for Your Business?

Aggregated on: 2022-05-10 19:50:50

Two types of widespread architecture exist in the market - Monolithic architecture and microservices architecture. While the latter is getting widespread recognition in the IT industry, does that mean you should jump into microservices architecture adoption? Is it the right solution for your business? This article will help you understand the core concepts of both the architecture to make an informed decision regarding the choice of architecture for your business.  What Is Monolithic Architecture? Monolithic architecture puts all the functionalities of the software into a single codebase. The codebase, usually, is internally divided into layers, namely the presentation layer, business logic layer, and database layer. This codebase, consisting of layers, is deployed as a single jar/war file.

View more...

How Can APIs Enable GDPR Compliance?

Aggregated on: 2022-05-10 19:20:50

The General Data Protection Regulation (GDPR) is considered “the world’s strongest set of data protection rules,” enforcing limits on what organizations can do with personal data in the EU. Its enforcement since 2018 led to varying effects in countries outside the EU, inspiring new data privacy laws around the world. Commercially speaking, it has become a trading measure for countries to do business with the EU. Especially if they want to get a piece of the EU’s data processing market, or want to sell to European residents, they will have to follow and comply with the rules and regulations set forth by the GDPR. Some countries incorporated GDPR’s provisions into their existing privacy laws, while others have enacted nationwide GDPR-like legislations. 

View more...

Role of Development Team in an Agile Environment

Aggregated on: 2022-05-10 18:50:50

The goal behind the Agile Development process is to facilitate the rapid delivery of software through an iterative process. But development teams adopting the Agile development approach often find themselves shifting back to conventional software development practices due to the inappropriate distribution of roles and responsibilities in an Agile environment.

View more...

Counting Faster With Postgres

Aggregated on: 2022-05-10 18:20:50

Count queries are probably the most-used aggregate queries in a relational database. Counting is a fundamental operation required for many CRUD applications like sorting, pagination, and searching. But counting records can become terribly slow as your dataset grows. Fortunately, there are strategies for dealing with this problem. This article will show you a few approaches. Data Setup Since we are just exploring count queries, we do not need an extensive data setup. We can create a simple table with just one column. You can do that with the commands below:

View more...

A Smarter Redis

Aggregated on: 2022-05-10 17:20:50

Everybody loves Redis. It's fast, easy to use from almost any programming language, and works exactly as it should. In addition, it's got an impressive list of modules for additional functionality. It's an excellent product. Sometimes, though, we may want Redis to be a little smarter.

View more...

Factors To Consider When Choosing an SQL Client

Aggregated on: 2022-05-10 17:20:50

Working with SQL through the command line can be tedious and difficult, but interacting with your data doesn't have to be that way. Instead, you can use an SQL client. An SQL client is a front-end application that uses the services provided by a database. SQL clients connect to your database infrastructure and let you interact with the database behind a web server. The majority of clients strive to achieve speed and simplicity while eliminating the clutter that comes with administrative tools that were considered standard in the past. However, not all of them succeed. In this article, we'll look at some factors you should consider when choosing an SQL client.

View more...

Simulators vs. Emulators: What's the Difference

Aggregated on: 2022-05-10 16:35:50

Simulators and emulators are frequently used interchangeably in the world of software testing. That makes logical up to a certain point. However, simulators and emulators are similar in many ways, and the distinctions between them aren't usually significant from a test engineer's perspective.

View more...

What Is White Box Testing? — A Brief Guide

Aggregated on: 2022-05-10 16:05:50

What Is White-Box Testing? White Box Testing is a product evaluation method based on the application's internal code structure. White-box testing uses an insider's perspective of the framework and programming skills to configure test cases. Typically, this testing is done at the unit level. The code of the application under test is visible to testers here.

View more...

What Do Great Engineering Managers Need To Know About Compensation and Equity?

Aggregated on: 2022-05-09 23:05:49

Today we’re going to do a whirlwind tour of compensation. Hopefully, you’ll learn a bit along the way, and I’ll share an exercise for managers called a compensation review. What Do You Need To Know About Salary? The largest expense for engineering organizations is usually salary.  Salary is mostly determined by supply and demand. Engineers are fortunate to be an industry with high demand. Companies have to compete based on salary and benefits in order to hire good engineers.  Structured Pay and “Pay Equity” Some companies use structured pay. Structured pay is when there is a “system” for determining pay:

View more...

How to Use Geofences for Precise Audience Messaging

Aggregated on: 2022-05-09 22:35:49

Precise messaging is an important way for mobile apps to retain users and is usually achieved by segmenting users into different groups according to their preferences and then adopting different messaging policies for each user segment. However, if you want to push messages to users based on their precise locations, in-depth customization is usually required since most available third-party messaging services cannot narrow the target audience down to a specific business area or a small area. With geofences, this issue can be effectively resolved. A geofence is a set of virtual boundaries that define a given area on a map. When a user's device enters or leaves the geofence, or stays in the geofence for a specific amount of time, messages and notifications can be automatically sent to an app on the user's device. Geofence and messaging capabilities can work together to precisely send messages to target audiences in a specified area. For example, suppose that a travel app wants to promote its ticket booking service in Paris. To do so, the app can create geofences for popular scenic spots in Paris. When a target user arrives at a scenic spot during a specified time range, the app will send them a promotion message such as "You have received a coupon for XYZ: Tap here to claim the coupon," increasing their willingness to buy a ticket.

View more...

Package and Deploy a Lambda Function as a Docker Container With AWS CDK

Aggregated on: 2022-05-09 21:50:50

One of my previous blog posts covered how to build a Serverless backend for Slack using by using Lambda Function URL as a webhook. Since I wanted to focus on the application itself, the infrastructure setup part was simplified - using AWS CLI, the function was packaged as a zip file, configured and finally, a Function URL was created along with the required permissions. In this blog, you will end up deploying the same solution, but this time using IaaC (Infrastructure-as-code) with AWS Cloud Development Kit (CDK) which is a framework for defining cloud infrastructure in code and provisioning it through AWS CloudFormation. You can choose from a list of supported programming languages (at the time of writing - TypeScript, JavaScript, Python, Java, C#/.Net, and Go (in developer preview)) to define your infrastructure components as code, just like you would with any other application!

View more...

OPC-UA, MQTT, and Apache Kafka: The Trinity of Data Streaming in IoT

Aggregated on: 2022-05-09 21:50:50

In the IoT world, MQTT (Message Queue Telemetry Transport protocol) and OPC-UA (OPC Unified Architecture) have established themselves as open and platform-independent standards for data exchange in Industrial Internet of Things (IIoT) and Industry 4.0 use cases. Data streaming with Apache Kafka is the data hub for integrating and processing massive volumes of data at any scale in real-time. This article explores the relationship between Kafka and the IoT protocols, when to use which technology, and why sometimes HTTP/REST is the better choice. The conclusion explores real-world case studies from Audi and BMW. Industry 4.0: Data Streaming Platforms Increase Overall Plant Effectiveness and Connect Equipment Machine data must be transformed and made available across the enterprise as soon as it is generated to extract the most value from the data. As a result, operations can avoid critical failures and increase the effectiveness of their overall plant.

View more...

The Difference Between the Composition API and Options API in Vue

Aggregated on: 2022-05-09 21:20:49

Up until Vue 2, there was one way to create components in Vue. With Vue 3, a new methodology was introduced called the Composition API. Now, if we want to make a component in Vue, we have two ways to do it. You might be wondering what the difference is, exactly, so let's take a look at how the newer Composition API differs from the Vue 2 methodology, which is now known as the Options API What Is the Difference Between the Composition and Options API in Vue? The short answer is syntax. The Composition API lets us create components without the need for a large single exportable object, like in the Options API. For example, if we wanted to make a simple counter component with the Options API, it would look like the code below.

View more...

A Guide to Understanding Vue Lifecycle Hooks

Aggregated on: 2022-05-09 21:20:49

Like other frameworks, Vue has a number of lifecycle hooks that allow us to attach code to specific events that occur while a Vue application is being created or used - for example, when the component loads, when a component is added to the DOM, or when something is deleted. Vue has a lot of lifecycle hooks, and what can be confusing is what each one means or does. In this guide, we'll be covering what each lifecycle hook does and how to use them.

View more...

How to Leverage Method Chaining To Add Smart Message Routing in Java

Aggregated on: 2022-05-09 20:05:49

We are going to use the open-source serialization library Chronicle Wire. Let's assume we have some data that we want to send to a particular destination; we don't want to pollute our business data structures with the routing information. In the future, the routing information could be removed or changed based on external factors such as system failover or horizontal scaling.    Having a separation of routing and business messages is nothing new; after all, JMS has been doing it for years with their createObjectMessage (below): 

View more...

Growth in Java Development for Web and Mobile Apps

Aggregated on: 2022-05-09 19:50:49

Java is the fifth most used programming language with a market share of 35.35%. It is a viable technology for enterprise, web, and mobile applications. Java has become the primary programming language for companies across multiple domains in recent years. It is powerful, scalable, and enterprise-grade. As a result, Java software development services are highly popular for such applications.  Today, Java has found applications in some of the leading technical industries of the world. From data science to AR & VR, Java is usable for all advanced programming applications. However, while enterprise Java development is the fastest-growing use case, web and mobile have been the long-standing winner for the technical applications of Java.

View more...

What Is ERP Testing? - A Brief Guide

Aggregated on: 2022-05-09 19:05:49

What Is ERP Testing? "ERP testing" is a term used to describe verifying the functionality of your ERP software solution during implementation. ERP testing is a quality assurance (QA) process that verifies the ERP system is correctly implemented and functioning before it is fully launched. ERP testing at different installation stages helps avoid unpleasant surprises such as the program crashing during go-live. It also minimizes the number of bugs identified after they have been implemented.

View more...

How To Put Exchange Server in Maintenance Mode

Aggregated on: 2022-05-09 19:05:49

Administrators must put the Exchange Server in maintenance mode while updating and making changes to the server to avoid data loss or other issues. If the changes or any security/cumulative updates are applied to the server without putting the server into maintenance mode, it can lead to database corruption or server failure. In this article, we discuss the Exchange Maintenance Mode, its importance, and the steps to put the Exchange Server into maintenance mode. We also mention steps to disable maintenance mode once the server update or upgrade is completed.

View more...

How Dynamic Rendering Works Using HTML and CSS?

Aggregated on: 2022-05-09 17:50:49

A user might be operating in front of a mobile screen and a desktop screen, but their expectation changes widely on both devices. A user in front of a mobile device is a little less patient, as they are mostly “on the go” compared to when they are in front of a desktop. Mobile devices have changed the overall user experience and how a user perceives a website nowadays. In short, we need our content to render dynamically on mobile and desktop screens abiding by their requirements. If we could do that, we could create a responsive design with content specific to the device users. For example, you cannot hide a “Login” button on a dropdown or hamburger menu in the corner. While you can do that on a desktop screen (even though it’s a bad design!) and the user will find it. The developers cannot mess up with the mobile design, considering the traffic size and data generation a mobile device is responsible for. Also, we have a lot to share with our users on the developer's end and want a large screen space to accommodate everything.

View more...

How Data and Analysis Can Power Agile Teams

Aggregated on: 2022-05-09 17:50:49

When working on projects in an Agile framework, it can be easy to fall into a routine of simply ‘going through the motions’ during Scrum rituals. A project team can settle into a plateau with the repetitive nature of Sprint cycles and associated practices. You may notice that your team performs the rituals as scheduled, yet the core goal of each method has been forgotten. This creates a risk that little value is extracted from each activity, meaning that they no longer provide insight and incremental improvement. This risk is exceptionally high and standard during Retrospective rituals, especially if the team becomes focused on their achievements during the Sprint rather than exploring opportunities for improvement. When Retros are not conducted in-depth, a huge opportunity is missed – to keep the team performing well and take their performance to higher levels.

View more...

How to Select Date From Datepicker in Selenium Webdriver Using Java

Aggregated on: 2022-05-09 17:05:49

Selenium is a widely used automation testing tool used to ensure the seamless working of web applications in accordance with predetermined technical and business requirements. Using Selenium is a great way to comply with the growing demands made upon developers and testers – faster and more efficient release of new and updated features, ideally within a few weeks. Selenium Webdriver, a significant component of the Selenium Test Suite, is a web framework that runs automated tests on websites to ensure all UI elements are functioning exactly as expected.

View more...

An Introduction to Milvus Python SDK and API

Aggregated on: 2022-05-09 16:05:49

Background The following illustration depicts the interaction between SDKs and Milvus through gRPC. Imagine that Milvus is a black box. Protocol Buffers are used to define the interfaces of the server and the structure of the information they carry. Therefore, all operations in the black box Milvus are defined by Protocol API. The interaction between SDKs and Milvus through gRPC Milvus Protocol API Milvus Protocol API consists of milvus.proto, common.proto, and schema.proto, which are Protocol Buffers files suffixed with .proto. SDKs must interact with Milvus with these Protocol Buffers files to ensure proper operation.

View more...

OpenTelemetry in Action: Identifying Database Dependencies

Aggregated on: 2022-05-09 10:50:49

Microservices can help any organization achieve its goal of increasing agility by addressing critical factors such as improving team autonomy, reducing time to market, cost-effectively scaling for load, and avoiding complete outages of the applications. As organizations break their monolith applications into microservices, one of the major hurdles they encounter is identifying database dependencies. Database sharing can be a complex and time-consuming challenge to solve. Databases do not allow you to define what is shared and what is not. While modifying a schema to better serve one microservice, you might inadvertently break how another microservice uses that same database.

View more...

The Most Popular Kubernetes Alternatives and Competitors

Aggregated on: 2022-05-09 04:20:49

Kubernetes is an open-source container orchestration tool developed by Google and is also known as K8s. It is used in managing the complete lifecycle of containerized applications. Kubernetes provides high availability, scalability, and predictability to the containerized application. It automates the deployment, management, and scaling of containerized applications. Kubernetes also supports automated rollout and rollbacks,  service discovery, storage orchestration, scaling, batch execution, and more. Kubernetes provides the cluster where containerized applications can be deployed. Kubernetes is not the only container orchestration tool, but various “Kubernetes Alternatives” are available in the market. Before we talk about the “Alternatives to Kubernetes,” let’s explore the key components of Kubernetes. The Kubernetes cluster consists of at least one worker node where containerized applications are deployed and one master node or control plane which manages the worker nodes. The Control plane or master node consists of Kube-API server, etcd, Kube-scheduler, and Kube-controller-manager, whereas the worker node consists of Kubelet, Kube-Proxy, and Container Runtime. 

View more...

Ultra-fast Microservices: When Microstream Meets Wildfly

Aggregated on: 2022-05-08 15:20:49

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 Wildfly to create a microservice application that is easily stable and ultra-fast. Microservices With Wildfly Microservices provide several challenges to software engineers, especially as a first step to facing distributed systems. But it does not mean that we're alone. Indeed there are several tools to make our life easier in the Java world, especially MicroProfile. 

View more...

Open Source Software (OSS) Quality Assurance - A Milvus Case Study

Aggregated on: 2022-05-06 22:05:48

Quality assurance (QA) is a systematic process of determining whether a product or service meets specific requirements. A QA system is an indispensable part of the R&D process because, as its name suggests, it ensures the quality of the product. This post introduces the QA framework adopted in developing the Milvus vector database, providing a guideline for contributing developers and users to participate in the process. It will also cover the major test modules in Milvus and methods and tools that can be leveraged to improve the efficiency of QA testings.

View more...

Maven Tutorial: Nice and Easy [Video]

Aggregated on: 2022-05-06 20:35:48

Ever looked for a comprehensive intro to Maven that is fun and entertaining at the same time? Then have a look at this brand-new episode of the "Marco Codes" YouTube channel: Maven Tutorial - Nice & Easy. In this video, you'll learn how to use Maven like a professional: installations, using the mvn wrapper, using Maven together with IDEs, and of course the Maven basics. From pom.xml concepts to running commands (clean install) to understanding Maven repositories and multi-module projects, by the end of it, there won't be many questions left when it comes to Maven.

View more...

Image Classification Using SingleStore DB, Keras, and Tensorflow

Aggregated on: 2022-05-06 18:35:48

Abstract Image classification can have many practical, valuable and life-saving benefits. The "Hello World" of image classification is often considered MNIST and, more recently, Fashion MNIST. This article will use Fashion MNIST and store the images in a SingleStore DB database. We'll also build an image classification model using Keras and Tensorflow and store the prediction results in SingleStore DB. Finally, we'll build a quick visual front-end to our database system using Streamlit that enables us to retrieve an image and determine if the model correctly identified it. The SQL scripts, Python code and notebook files used in this article are available on GitHub. The notebook files are available in DBC, HTML and iPython formats.

View more...

Take Control of Your Application Security

Aggregated on: 2022-05-06 17:35:48

Bob, the software architect, and Alice, the SecDevOps engineer are part of a growing software development start-up company. Here is the conversation between them on developing a new set of microservices. Bob: Did you hear the announcement? The client deal was finalized; we can begin the development of an analytics app for their financial services on the cloud.

View more...

Run Containers and VMs Together With KubeVirt

Aggregated on: 2022-05-06 14:05:48

Although many enterprises have deployed Kubernetes and containers, most also operate virtual machines. As a result, the two environments will likely co-exist for years, creating operational complexity and adding cost in time and infrastructure. Without going into the pros and cons of one versus the other, it’s helpful to remember that each virtual machine or VM contains its instance of a full operating system and is intended to operate as if it were a standalone server—hence the name. By contrast, in a containerized environment, multiple containers share one instance of an operating system, almost always some flavor of Linux.

View more...

Querying Kafka Topics Using Presto

Aggregated on: 2022-05-06 00:35:47

Presto is a distributed query engine that allows querying different data sources such as Kafka, MySQL, MongoDB, Oracle, Cassandra, Hive, etc. using SQL. It has the ability to analyze big data and query multiple data sources together. In this article, we will discuss how Presto can be used to query Kafka topics. Below is the step-by-step process to set up Presto and Kafka, and connect them together. Here, I have considered MacOS, but similar setups can be done on any other system.

View more...

Your Old Laptop Is Your New Database Server

Aggregated on: 2022-05-05 23:35:47

A couple of weeks ago I almost accidentally found in my apartment an old laptop that was only gathering dust: a Lenovo Thinkpad T440s that I bought in 2014. The specs:

View more...

How to Minimize Software Development Cost

Aggregated on: 2022-05-05 21:50:47

One of the typical questions when you look at the project briefing is how to minimize software development costs. Of course, there are many ways of doing it without sacrificing quality; however, don’t forget it is all about trade-offs.  Collaborate With Software Experts When we talk about reducing software development costs, outsourcing is one way to achieve this. Fortunately, you can find many exceptional development partners, such as Apiumhub, and you no longer have to worry about geographical or knowledge limitations. In addition, partnering with a software agency allows you to leverage a large pool of resources and save on many expenses, such as paid vacations and sick leaves, insurance, recruitment costs, budgets associated with onboarding and training, and more. At first sight, let’s say hourly, or monthly rates may seem expensive. Still, if you really choose experts, you start developing your project from the start, applying best practices, thinking about software architecture, infrastructure, etc. Note that it is highly important to provide detailed project scope and requirements before starting a collaboration.

View more...

MySQL DB Installation and Workbench [Video]

Aggregated on: 2022-05-05 21:50:47

In the video below, we take a closer look at MySQL DB installation, MySQL Workbench, how to connect to the MySQL DB, and how to get info using the Java program. Let's get started!

View more...

Scaling Feature Flag Management for Better Progressive Delivery [Webinar]

Aggregated on: 2022-05-05 21:20:47

The concept of "progressive delivery" using feature flags has rapidly grown in recent years as the "new standard" in DevOps excellence, and for good reason. The concept of using feature flags to decouple deployment from release to deliver "progressively" expands the principles of continuously improving software directly into production with real users -- in a safe, controlled way. Further, feature flags provide a wide variety of safety and speed improvements within software delivery, effectively "supercharging" CI/CD in new ways.  However, achieving these software delivery benefits at scale doesn't come without downsides. Complexity can grow in testing, accrual of technical debt, and general visibility and governance of feature flags across CI/CD toolchains. 

View more...

Why Is Cypress the Best Automation Testing Tool?

Aggregated on: 2022-05-05 20:50:47

Cypress - The Test Automation Tool Cypress is the fastest, most reliable, and easiest-to-use automation tool for QA Testing. Cypress is a Node.js-based tool that can be integrated with any CI/CD pipeline. It offers an easy-to-use and powerful user interface, making it an ideal choice for automating the testing process. Cypress is also open-source and provides excellent support to the community. Cypress is the best option to automate QA Testing because of its speed, reliability, and ease of use. It is also open-source and offers excellent support to the community. In addition, Cypress is easy to use and install - unlike other tools that require complex configuration, Cypress can be installed quickly and easily. Here Are Some of the Top Reasons why Cypress Is the Best Option for Automating QA Testing:

View more...

Vue 3 Reactivity Composition API Using Reactive() And Ref()

Aggregated on: 2022-05-05 20:20:47

Reactivity is a key pillar for building VueJS applications. While VueJS Reactivity using Options API is quite powerful, more and more developers are moving to Composition API for building their Vue applications. Thankfully, Vue 3 Reactivity with Composition API is equally robust. Vue 3 Reactivity with Composition API is driven by reactive() and ref() functions. These functions turn the component model data reactive so that Vue is able to track changes. However, both reactive() and ref() have their specific use-cases. It is important to know which function should be used in which particular scenario.

View more...

Demystify the Cybersecurity Risk Management Process

Aggregated on: 2022-05-05 19:50:47

Cybersecurity is critical today, with data breaches becoming more common and sophisticated. As a result, cybersecurity risk management is a complex and ever-changing field. After checking out some online surveys, we found around 304.7 million ransomware attempts in the first half of 2021. In the second half, it was even worse, reaching 318.6 million. These figures have even beaten 2020 in total, which was 281.9 million ransomware attacks. So, it's apparent that cybersecurity risk management is complex and requires IT security professionals to understand the threats posed by cybercriminals.

View more...

Salesforce and Snowflake Native Data Integration Options

Aggregated on: 2022-05-05 19:20:47

Introduction Salesforce and Snowflake became strong technology partners more than a year ago. That partnership fruited prebuilt, bi-directional integration options between the two leading platforms in CRM and Data domains. The solution offers easy-to-use, point-and-click integration to push CRM data into Snowflake Data Cloud and also receive analytics data from Snowflake into Salesforce. The native Salesforce and Snowflake integration is built on top of Salesforce Tableau CRM (recently renamed CRM Analytics). Architecture From a technical perspective, there are 4 options that the Salesforce-Snowflake native data integration features can offer:

View more...

Upload Files to AWS S3 in JMeter Using Groovy

Aggregated on: 2022-05-05 19:20:47

I use my personal AWS S3 to store all my personal and confidential documents. There are three primary reasons for choosing AWS S3: affordability, speed, and reliability. If you are working on the AWS cloud, the usage of S3 is inevitable. S3 plays a critical role in storing objects in hot and cold storage. Sometimes you need to upload a payload or file objects to S3 programmatically via your performance test script. This article will help you to upload files to AWS S3 in JMeter using Groovy. What Is S3? Amazon Simple Storage Service (Amazon S3) is an object storage service that offers industry-leading scalability, data availability, security, and performance.

View more...

Use Lambda Function URL To Write a Serverless App Backed by DynamoDB

Aggregated on: 2022-05-05 18:50:47

Lambda Function URL is a relatively new feature (at the time of writing this blog) that provides a dedicated HTTP(S) endpoint for your Lambda function. It is really useful when all you need is a single endpoint for your function (e.g. to serve as a webhook) and doesn't want to set up and configure an API Gateway. Looks like I can't seem to get enough of it! I have written a couple of blog posts on this topic that includes a practical example of using it to build a serverless backend and then deploying that solution using AWS CDK. This is yet another blog post (it's a short one!) that demonstrates how you can use Lambda Function URL to write a simple application backed by DynamoDB. You will be able to invoke an API endpoint exposed by the Lambda Function URL, which in turn will execute operations (GetItem, PutItem, Scan) on DynamoDB. The function is written in Go using the DynamoDB package in AWS Go SDK and AWS Serverless Application Model (SAM) is used to quickly build and deploy the solution.

View more...

Accelerating Similarity Search on Really Big Data with Vector Indexing (Part II)

Aggregated on: 2022-05-05 17:50:47

Many popular artificial intelligence (AI) applications are powered by vector databases, from computer vision to new drug discovery. Indexing, a process of organizing data that drastically accelerates big data search, enables us to efficiently query million, billion, or even trillion-scale vector datasets. This article is supplementary to the previous blog, "Accelerating Similarity Search on Really Big Data with Vector Indexing," covering the role indexing plays in making vector similarity search efficient and different indexes, including FLAT, IVF_FLAT, IVF_SQ8, and IVF_SQ8H. This article also provides the performance test results of the four indexes. We recommend reading this blog first. This article provides an overview of the four main types of indexes and continues to introduce four different indexes: IVF_PQ, HNSW, ANNOY, and E2LSH.

View more...

Upsert in SQL: What Is an Upsert, and When Should You Use One?

Aggregated on: 2022-05-05 17:20:47

Upserts are useful for anyone who works with a database to know, but the term "upsert" might not even appear in your DBMS's documentation! So what is an upsert, and why might it not be mentioned in your docs?

View more...

Creating Microservices in Nest.js

Aggregated on: 2022-05-05 17:20:47

Microservices can seem intimidating at first, but they're just regular applications at the end of the day. They can execute tasks, listen for requests, connect to databases, and everything else a standard API or process would do. We only call them microservices colloquially because of how we use them, not because they are inherently small. This tutorial will demystify the creation and operation of microservices for Node.js developers by creating a microservice using a popular Node.js framework, NestJS. We won’t go into detail about the design or architecture of NestJS applications specifically, so if you’re unfamiliar with the framework, I’d recommend you check out its docs first or skip to one of our Node.js samples that use Express directly.

View more...

Making Your SSR Sites 42x Faster With Redis Cache

Aggregated on: 2022-05-05 16:50:47

Redis is an in-memory store that is primarily used as a database. You may have heard of Redis and heard how cool it is but never had an actual use case for it. In this tutorial, I'll show you how you can leverage Redis to speed up your Server Side Rendered (SSR) web application. If you're new to Redis, check out my guides on Installing Redis and creating key-value pairs to understand better how it works. In this article, we'll look at how to adjust your Node.JS Express application to build in lightning-fast caching with Redis.

View more...

Evolving Domain-Specific Languages

Aggregated on: 2022-05-05 14:35:47

When designing domain-specific languages (DSL), the most critical choice is the selection of concepts that form the basis of the language. Sometimes concepts for the language come from the customer directly or from domain traditions. Sometimes the DSL developers force customers to use what they are already familiar with. Implementing these concepts in the DSL as close to the domain as possible is usually a good choice so the language will be readily understood by domain experts. However, instead of sticking to the existing domain concepts, it is also possible to evolve domain concepts by designing higher-level concepts based on existing concepts. In this article, I’ll demonstrate how such an evolution could be done using a classic state machine language as an example. State Machine Language Martin Fowler wrote a classic book called “Domain-Specific Languages.” This is a really good book, and I recommended reading it if you have plans to go into DSL design. The state machine sample from that book is copied from an article, and a lot of DSL framework developers and language workbench developers demonstrate the capabilities of their tools based on this state machine language. This language has become a kind of a DSL tool benchmark language. The sample is in the following code block (one of many variants. I've tried to compare to the one that is implemented for Xtext version of the language at the blog post by Sven Efftinge, “Martin Fowler's State Machine DSL with Xtext 2.3”):

View more...

6 Things Startups Can Do to Avoid Tech Debt

Aggregated on: 2022-05-05 01:35:46

Imagine walking into this: "About 4 million lines of PHP code, written by underpaid, sometimes not well-meaning, freelancers and students over the span of 8 years. The CEO wrote a large part, but stopped learning new techniques around 2004." That's how bad tech debt can get when a startup is run without considering that all of those messy shortcuts will eventually have to get cleaned up.

View more...