News Aggregator


Inside the Top 10% of Engineering Orgs

Aggregated on: Mon Jul 03 2023 16:01:04 GMT+0000 (Coordinated Universal Time)

Fact: You can’t become better at anything unless you understand what getting better would actually look like. This is especially true in the case of engineering teams. Following the analysis of 2,000 dev teams and over 4 million code branches, the 2023 Engineering Benchmarks report is out.

View more...

Less Frequently Used HTTP Methods

Aggregated on: Mon Jul 03 2023 15:31:04 GMT+0000 (Coordinated Universal Time)

Understanding less frequently used HTTP methods is crucial for comprehensive API development. While widely known methods like GET and POST form the foundation of web communication, there are specialized methods that are not as commonly used. These methods have specific purposes and cater to niche functionalities, resulting in their reduced popularity. However, comprehending these methods allows developers to unlock additional capabilities and offer advanced features in their APIs. By expanding knowledge beyond the commonly used methods, developers can optimize API design, make informed decisions for different operations, and cater to specific use cases and requirements, ultimately resulting in more versatile and powerful APIs. HTTP functions: In Martini, your request's HTTP method can be set using the dropdown box near the text field for the URL. The supported methods are: GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS, and TRACE.

View more...

Must-Have Infrastructure as Code Tools

Aggregated on: Mon Jul 03 2023 15:16:04 GMT+0000 (Coordinated Universal Time)

Here are some handy tools that made my Terraform coding journey smoother and should help your Terraform coding as well. What Is Terraform? For starters, Terraform is an infrastructure as a code (IaC) tool that helps you provision Cloud or On-premise resources through declarative configuration. Terraform uses HCL2 (Hashicorp Configuration Language).

View more...

Leveraging Infrastructure as Code for Data Engineering Projects: A Comprehensive Guide

Aggregated on: Mon Jul 03 2023 14:31:04 GMT+0000 (Coordinated Universal Time)

Data engineering projects often require the setup and management of complex infrastructures that support data processing, storage, and analysis. Traditionally, this process involved manual configuration, leading to potential inconsistencies, human errors, and time-consuming deployments. However, with the emergence of Infrastructure as Code (IaC) practices, data engineers can now automate infrastructure provisioning, deployment, and management, ensuring reliability, scalability, and reproducibility. In this article, we will explore the benefits of leveraging IaC for data engineering projects and provide detailed implementation steps to get started. Understanding Infrastructure as Code (IaC) Infrastructure as Code refers to the practice of defining and managing infrastructure resources, such as servers, networks, databases, and storage, using machine-readable configuration files or scripts. IaC enables treating infrastructure setups as version-controlled code, allowing for automated provisioning, deployment, and configuration management.

View more...

Virtualization Security Best Practices: Protecting Your Data and Applications

Aggregated on: Mon Jul 03 2023 13:31:04 GMT+0000 (Coordinated Universal Time)

With over 80% of workloads worldwide virtualized, virtualization security is a concern for organizations regardless of size, goal, and industry. Proper protection systems for a particular organization's workloads and data are necessary to support production and service availability. In this post, we explain: 

View more...

Defect Management Tutorial: A Comprehensive Guide With Examples and Best Practices

Aggregated on: Mon Jul 03 2023 13:16:04 GMT+0000 (Coordinated Universal Time)

Defect management is the process of identifying, documenting, and tracking defects (bugs or issues) in a software product. It is an important part of the software development process that ensures defects are identified and addressed in a timely manner. Analyzing bugs that need identification, documentation, monitoring, and addressing large codebases of complex software applications can be a daunting task. In addition, satisfying the expectations of end-users is also crucial. This is where Defect management comes to the rescue.

View more...

How to Accurately Forecast Project Delivery

Aggregated on: Sat Jul 01 2023 15:01:02 GMT+0000 (Coordinated Universal Time)

There are two BIG questions that you’ve likely been asked repeatedly by leaders (like your CEO) over the years that are intrinsically linked to business priorities: When will feature ABC be ready? Can you deliver it sooner than XYZ? Historically, answering these questions has been an exercise in divination because engineering leaders and their teams have to constantly juggle competing operational priorities that the business doesn’t always have full visibility into: 

View more...

Data Testing: The Missing Component of Data Quality

Aggregated on: Sat Jul 01 2023 14:31:02 GMT+0000 (Coordinated Universal Time)

Data Quality is crucial for systems such as data warehouses, MDM, CRM, and other data-centric projects. However, DQ is often ignored in development until the system is fully operational in production. This results in a large gap in data quality as there was minimal, or no testing done during the development phase of the project. Data is like a product and the data system is like a factory that produces it. In a factory, quality is split into two components quality assurance and quality control. Let’s take a deeper dive and understand these concepts and how they apply to data quality.

View more...

Introduction to Scrum Methodology

Aggregated on: Sat Jul 01 2023 13:46:02 GMT+0000 (Coordinated Universal Time)

Scrum is a methodology used in project management that was first introduced by Ken Schwaber and Jeff Sutherland in the 1990s. It has since become a popular approach to software development, but it can be used in other fields as well. In this article, we will explore what Scrum is, how it works, and the benefits it can bring to your organization. What Is Scrum? The word "scrum" originally referred to a formation used in rugby, where players come together and work together to move the ball forward. The term was adopted by Schwaber and Sutherland to describe their new approach to software development, where teams work collaboratively and iteratively to create and deliver high-quality products.

View more...

Building a Strong Foundation: How To Implement Crud Operations With APIs and Databases

Aggregated on: Fri Jun 30 2023 17:16:02 GMT+0000 (Coordinated Universal Time)

In web development, the ability to create, read, update, and delete data from a database is critical. This is where CRUD operations come into play. By implementing these operations with APIs and databases, web developers can build powerful, scalable applications that can handle a wide range of use cases. In this article, we will take an in-depth look at how to implement CRUD operations with APIs and databases, providing examples and best practices along the way. What Is CRUD? CRUD is an acronym that stands for Create, Read, Update, and Delete. These four operations are the basic functions that can be performed on any persistent data store, such as a database. In web development, CRUD operations are used to manipulate data within a database, typically through an API (Application Programming Interface).

View more...

A List of Best Practices for Writing Tests

Aggregated on: Fri Jun 30 2023 17:16:02 GMT+0000 (Coordinated Universal Time)

Below is a list of best practices to follow when writing tests. These are general guidelines one should follow irrespective of the type of tests they are working on. Keep Tests Independent Each test should be independent of others, ensuring that a failure in one test doesn't impact the execution or outcome of another. This improves test reliability, enables test parallelization, and allows for easier debugging.

View more...

Twelve Pitfalls To Avoid in Data Integration

Aggregated on: Fri Jun 30 2023 17:01:02 GMT+0000 (Coordinated Universal Time)

Data integration can be a tricky business, like navigating a maze filled with dead-ends, detours, and pitfalls. But fear not! With the right map and tools, you can reach the end of the maze successfully. To help you get there, we've outlined the top 12 common pitfalls to watch out for in your data integration journey. So buckle up, and let's embark on this exciting and fun adventure together! Are Data Format Mismatches Messing With Your Integration Goals? Picture this: you've finally reached the heart of the data integration maze and are ready to integrate your data sources. You expect a seamless data flow, but instead, you're met with a roadblock - data in different formats. It's like discovering that your GPS uses metric while the map you have is in imperial. It just doesn't match!This is a common issue when integrating data from different sources. For example, one data source might use the MM/DD/YYYY date format, while another uses DD/MM/YYYY. If these mismatches are not addressed, they can cause errors and prevent you from reaching the end goal of seamless data integration.To avoid this pitfall, you must get your data in the same format before integrating it. Think of it as a translator, converting data from one language to another, making sure that everyone can understand each other.

View more...

Pagination in GraphQL: Efficiently Retrieve and Manipulate Data

Aggregated on: Fri Jun 30 2023 17:01:02 GMT+0000 (Coordinated Universal Time)

In our previous blog post titled "Pagination 101: why it matters and how to do it right in your API," we explored the importance of pagination and its implementation in APIs. Today, we delve into the realm of GraphQL and its powerful capabilities for efficient data retrieval and manipulation through pagination. We have become quite passionate about GraphQL lately as we now support designing and publishing GraphQL APIs in v2 of Martini and rendering content from a GraphQL API in an application, dashboard, or report created with Bellini. Building upon the foundational knowledge from our previous blog, we will now focus on how pagination is handled, specifically in GraphQL APIs. GraphQL, with its flexible query language and runtime, provides developers with a versatile toolset to streamline pagination and optimize data fetching.

View more...

The Evolution of EMR Software Development

Aggregated on: Fri Jun 30 2023 16:31:02 GMT+0000 (Coordinated Universal Time)

Electronic Medical Records (EMRs) have revolutionized the healthcare industry by streamlining patient data management, improving accuracy, and enhancing healthcare delivery. Behind the scenes, EMR software development plays a crucial role in creating robust and efficient systems that meet the complex requirements of healthcare providers. This article will delve into EMR software development, exploring the programming technologies that power these systems and examining their evolution. Programming Technologies in EMR Software Development Relational Database Management Systems (RDBMS) Relational Database Management Systems (RDBMS), such as MySQL, Oracle, and Microsoft SQL Server, are commonly used for structured data storage in chiropractic EMR systems. Popular RDBMS options in EMR software development include MySQL, Oracle, and Microsoft SQL Server. RDBMS is suitable for structured data storage, such as patient demographics, medical history, and lab results, where relationships between data entities are well-defined. NoSQL Databases NoSQL databases are designed to handle unstructured and semi-structured data, offering flexibility and scalability. In EMR software development, NoSQL databases like MongoDB and Cassandra are often used to store medical documents, sensor data, and social media feeds. NoSQL databases can handle large volumes of data with high read and write throughput, making them suitable for applications with complex data structures. Programming Languages Java Java is a versatile programming language known for its scalability, platform independence, and robustness. It is commonly used in enterprise-level EMR systems due to its ability to handle complex business logic, extensive libraries, and support for multithreading. Java provides frameworks and tools that aid in building secure and reliable EMR software. C# C# (pronounced C sharp) is a programming language developed by Microsoft and is widely adopted for Windows-based EMR applications. It integrates well with the .NET framework, allowing developers to leverage its features, libraries, and tools for building robust and performant software. C# provides a strong type system, garbage collection, and seamless interoperability with other .NET languages. Python Python is a popular programming language in the healthcare domain, valued for its simplicity, readability, and extensive ecosystem of libraries. It is often used for rapid prototyping, data analysis, and scripting tasks in EMR software development. Python's flexibility and ease of use make it suitable for tasks such as data processing, machine learning, and integrating various components of an EMR system. JavaScript JavaScript is a programming language primarily used for web-based EMR applications, particularly on the client side. It is essential for creating interactive user interfaces, dynamic content, and handling user events. JavaScript frameworks like React and Angular are commonly used for building front-end components of EMR software, enabling efficient rendering and managing complex state transitions. Web Frameworks Ruby on Rails Ruby on Rails, often referred to as Rails, is a web application framework written in Ruby. It emphasizes convention over configuration, enabling developers to build applications quickly by following established patterns and conventions. Rails provide various libraries, tools, and conventions that simplify development, testing, and deployment processes. Django Django is a high-level Python web framework known for its scalability, security, and rapid development capabilities. It follows the Model-View-Controller (MVC) architectural pattern and provides a robust foundation for building complex EMR systems. Django's features include an ORM (Object-Relational Mapping) layer, authentication mechanisms, and built-in administrative interfaces. ASP.NET ASP.NET is Microsoft's web framework for building web applications, including EMR software. It integrates seamlessly with other .NET technologies, offering a comprehensive set of tools and libraries for rapid development and deployment. ASP.NET provides server controls, data binding, authentication, and session management, enabling developers to create feature-rich and secure EMR applications. The Evolution of EMR Software Development Legacy Systems: Early EMR systems were often proprietary and built using programming languages like C and C++. They lacked interoperability, had limited functionality, and required significant infrastructure investments. Client-Server Architecture: The shift to client-server architectures enabled centralized data storage and improved accessibility. Technologies like Java, .NET, and JavaScript were commonly used to develop the front-end and back-end components. Web-Based EMR Systems: The advent of web technologies brought about a paradigm shift in EMR software development. Web-based EMR systems offered enhanced accessibility, reduced installation and maintenance costs, and improved interoperability. HTML, CSS, and JavaScript became the foundation for building responsive and user-friendly interfaces. Frameworks like Ruby on Rails, Django, and ASP.NET simplified development and accelerated time-to-market. Cloud-Based EMR Systems: Cloud computing revolutionized EMR software development by offering scalable and cost-effective infrastructure. Cloud platforms such as Amazon Web Services (AWS) and Microsoft Azure provided on-demand resources and high availability. Containerization technologies like Docker facilitated easy deployment and management of EMR applications. Microservices architecture allowed for modular development, enabling flexibility and scalability. Integration and Interoperability: Interoperability became a key focus in EMR software development, enabling seamless data exchange between systems. Standards like Health Level Seven International (HL7) and Fast Healthcare Interoperability Resources (FHIR) were widely adopted. Application Programming Interfaces (APIs) facilitated integration with external systems, including medical devices and third-party software. Data Security and Privacy: EMR software development emphasized robust security measures to protect sensitive patient information. Encryption algorithms, access controls, and audit trails were implemented to ensure data integrity and confidentiality. Compliance with regulations such as the Health Insurance Portability and Accountability Act (HIPAA) was paramount. In EMR software development, these programming technologies are vital in creating robust and efficient systems. The choice of backend technologies, programming languages, and web frameworks depends on scalability, performance requirements, integration capabilities, and the healthcare organization's specific needs.

View more...

Automation of Product Development Processes

Aggregated on: Fri Jun 30 2023 16:16:02 GMT+0000 (Coordinated Universal Time)

HI! My name is Volodymyr Nuzhdin, and I have been developing iOS and macOS programs in the Nektony team for over five years. We create utilities for cleaning up space on Apple devices. When I need automation of some processes, I usually go through the following stages:

View more...

Oracle Connection Manager: Enhancing Database Connectivity in the Cloud

Aggregated on: Fri Jun 30 2023 15:31:02 GMT+0000 (Coordinated Universal Time)

In the ever-evolving landscape of cloud computing, Oracle Connection Manager (CMAN) plays a crucial role in streamlining and optimizing database connectivity. As a proxy server, CMAN acts as a bridge between clients and databases, forwarding connection requests and managing access control. This article explores the various use cases, installation, configuration, and management of Oracle Connection Manager, highlighting its significance in the cloud environment. 1. Introduction Oracle Connection Manager (CMAN) is a powerful software solution that facilitates database connectivity in Oracle environments. By acting as a proxy server, CMAN provides a centralized point of control for managing client connections to databases. It works on the session level, allowing for efficient routing and load balancing of requests. CMAN is compatible with Oracle Database Enterprise Edition 12c and higher.

View more...

Why ORMs and Prepared Statements Can't (Always) Win

Aggregated on: Fri Jun 30 2023 15:16:02 GMT+0000 (Coordinated Universal Time)

Developers were told to use ORMs and prepared statements to avoid SQL injections for a long time now. By doing so, they effectively separate instructions (the semantics of the SQL query) from the data. Modern languages and frameworks often also abstract away the need to write raw queries, offering high-level interfaces around our database models. Unfortunately, that's not enough to thwart away SQL injections once and for all, as these APIs can still present subtle bugs or nuances in their design. In this blog post, I show you how the misuse of a Golang ORM API introduced several SQL injections in Soko, a service deployed on the Gentoo Linux infrastructure. Then, I look further into assessing the impact of this vulnerability by using a PostgreSQL feature to execute arbitrary commands on the server.

View more...

Exploring the Need for Object-Oriented Programming

Aggregated on: Fri Jun 30 2023 14:31:02 GMT+0000 (Coordinated Universal Time)

Object-oriented programming (OOP) has become a fundamental paradigm in software development, revolutionizing the way we design, implement, and maintain complex systems. By organizing code into reusable objects with their own properties and behaviors, the four pillars of OOP are code organization, modularity, and scalability. We will delve into the need for object-oriented programming, exploring its key principles, benefits, and real-world applications. By understanding the fundamental concepts and advantages of OOP, we can appreciate its significance in modern software development and gain insights into how it shapes the way we build and maintain software systems. In the ever-evolving world of software development, the need for efficient and maintainable code has become paramount. Object-oriented programming (OOP) has emerged as a powerful paradigm that addresses these needs by providing a structured approach to software design. By organizing code into reusable objects, each with its own properties and behaviors, OOP offers numerous benefits that contribute to the development of robust and scalable software systems. This essay explores the fundamental need for object-oriented programming, delving into its key principles, advantages, and real-world applications. Through this exploration, we aim to highlight the significance of OOP in modern software development and showcase its essential role in shaping the software landscape.

View more...

What's New in HMS Core Scan Kit 6.11.0

Aggregated on: Fri Jun 30 2023 14:31:02 GMT+0000 (Coordinated Universal Time)

The latest version (6.11.0) of HMS Core Scan Kit is now available, and this article aims to share some of its exciting new features with you: The kit adds the decode API that is available to both camera-based and image-based barcode scanning scenarios. This API supports image data in NV21 format (which is output by your custom camera API) and multi-barcode recognition. Compared with decodeWithBitmap, an API released in an earlier version that supports only the bitmap format, the decode API saves time converting the image format and delivers a faster barcode scanning process in the camera-based mode.

View more...

Four Ways To Ingest Streaming Data in AWS Using Kinesis

Aggregated on: Fri Jun 30 2023 14:16:02 GMT+0000 (Coordinated Universal Time)

In today's fast-paced world, organizations need to be able to process and analyze data in real-time to stay competitive. Streaming data, which refers to data that is generated continuously and in real-time, has become a crucial component of modern applications. However, processing and analyzing streaming data can be challenging, especially when dealing with large volumes of data. Amazon Web Services (AWS) offers a solution to this problem with its Kinesis suite of services. With Kinesis, you can ingest real-time data, such as video, audio, application logs, website clickstreams, and IoT telemetry data, for machine learning (ML), analytics, and other applications. Kinesis offers several services that allow you to ingest, process, and analyze streaming data. These services include Kinesis Data Streams, Kinesis Firehose, Kinesis Video Streams, and Kinesis Analytics. This article will explore these four ways to ingest streaming data in AWS using Kinesis.

View more...

Exploring Java 21's Intriguing Additions (Part 1)

Aggregated on: Fri Jun 30 2023 13:31:02 GMT+0000 (Coordinated Universal Time)

Java 21 is going to introduce several intriguing additions that enhance the language's capabilities. This article aims to discuss a few notable features that stand out, providing an overview of their functionalities and potential use cases. Character Enhancements Character.isEmoji(int codePoint): This method determines whether a character is considered an emoji based on its Unicode properties defined in Unicode Emoji (Unicode Emoji Technical Standard #51). For example, executing Character.isEmoji(9203) would return true for the character ⏳, which has the code point 9203. Character.isEmojiPresentation(int codePoint): Similar to isEmoji(), this method checks if a character has the Emoji Presentation property. It helps identify characters that display as emojis when rendered. Example:

View more...

Tutorial: Building an IoT App With Rust + ScyllaDB NoSQL

Aggregated on: Fri Jun 30 2023 13:01:02 GMT+0000 (Coordinated Universal Time)

This tutorial will show you how to create an IoT app from scratch using Rust and configure it to use ScyllaDB as the backend NoSQL datastore. It’ll walk you through all the stages of the development process, from gathering requirements to building and running the application. As an example, you will use an application called CarePet. CarePet allows pet owners to track their pets’ health by monitoring their key health parameters, such as temperature or pulse. The application consists of three parts:

View more...

Registering Spring Converters via Extending Its Interface

Aggregated on: Thu Jun 29 2023 18:46:01 GMT+0000 (Coordinated Universal Time)

This article is a step-by-step guide aimed at demonstrating an interface-based approach to using Spring's type conversion system. Spring 3 introduced a core.convert package that provides a general type conversion system. The system defines an SPI to implement type conversion logic and an API to perform type conversions at runtime.

View more...

Generative AI Models: Boosting Merchandising Analytics User Experience

Aggregated on: Thu Jun 29 2023 18:31:01 GMT+0000 (Coordinated Universal Time)

In this article, we will explain how using the new Generative AI Models (LLM) can improve the experience of business users on our analytical platform. Let's say we provide our retail merchandising managers with a web application or a mobile application where they can analyze sales and stock behavior in real-time using natural language. These applications usually have a series of restrictions that mainly show a generic type of analysis, which users can filter or segment based on some filters and provide information such as:

View more...

How To Create a Crud App in OutSystems — A Low Code Development Platform

Aggregated on: Thu Jun 29 2023 16:31:01 GMT+0000 (Coordinated Universal Time)

OutSystems is a low-code development platform that allows you to build web and mobile applications rapidly. In this example, we'll create a simple employee management CRUD system. It took me around eight hours to get started with the platform and build my first CRUD app.  Let's get started!

View more...

Standardization of Access Management Using IDP Federation

Aggregated on: Thu Jun 29 2023 16:31:01 GMT+0000 (Coordinated Universal Time)

In this version (version 1), we will explore the concept of IDP federation and its uses in the large enterprise for smooth access management where there is a need to handle heterogeneous sets of users. In version 2, we will give a step-by-step approach to implementing IDP federation using IBM Verify. What Is the Pain Point? Multiple sets of employees, vendors, and customers from multiple organizations are typical in today's environment, where the merging and collaboration of various businesses and organizations is a fundamental and ongoing process.

View more...

The Prospects of AI in Data Conversion Tools

Aggregated on: Thu Jun 29 2023 16:01:01 GMT+0000 (Coordinated Universal Time)

Efficient data conversion is crucial for businesses seeking seamless integration, improved productivity, and enhanced decision-making. With the advancements in artificial intelligence (AI) technology, data conversion tools are experiencing a transformation that promises to revolutionize the way data is processed, extracted, and translated. In this blog, we'll explore how AI complements these tools and the significant impact it can have on businesses.  Data Conversion Tools  Data conversion tools are software solutions designed to convert data from one format to another, ensuring compatibility and seamless integration between systems. Because data conversion plays a crucial role in various larger projects, such as data migration and system integration, many data integration software vendors offer data conversion capabilities as part of their solutions. 

View more...

Do We Really Need More Powerful Language Models?

Aggregated on: Thu Jun 29 2023 16:01:01 GMT+0000 (Coordinated Universal Time)

Today people rarely question the connection: bigger models mean better models. Every new release of GPT by Open AI generates tremendous interest in traditional media and social media alike. However, do we need more powerful language models (foundational models) to help us with daily tasks? For this article, I have talked to Ivan Smetannikov, Data Science Team Lead at Serokell, Ph.D. Computer Science, Associate Professor, and Senior Researcher at ITMO. He explains why ChatGPT might often be a massive waste of time and resources. And talks about alternative approaches to building NLP models that could bring the same results.

View more...

Build a Serverless Application for Audio-To-Text conversion

Aggregated on: Thu Jun 29 2023 15:46:01 GMT+0000 (Coordinated Universal Time)

In this blog post, you will learn how to build a Serverless speech-to-text conversion solution using Amazon Transcribe, AWS Lambda, and the Go programming language. Audio files uploaded to Amazon Simple Storage Service (S3) will trigger a Lambda function which will submit an asynchronous job to Amazon Transcribe (using the AWS Go SDK) which will, in turn, store the result in another S3 bucket. You will be using the Go programming language for the business logic (thanks to the aws-lambda-go library) as well as the infrastructure component (Go bindings for AWS CDK) to deploy the solution.

View more...

What Is Canary Deployment in CI/CD?

Aggregated on: Thu Jun 29 2023 15:46:01 GMT+0000 (Coordinated Universal Time)

With the adoption of microservices, cloud, and Kubernetes, the CI/CD processes proved to be very useful in deploying features and changes into production faster. The new normal is the faster time to market with software delivery (or CI/CD) pipelines. What sets a company apart is releasing better, high-quality features that provide excellent consumer expectations or experience. However, the fear of delivering the wrong software change to the production haunts DevOps and SREs teams. That’s why canary deployment is becoming famous among architects and the DevOps team.

View more...

Generating Non-Colliding Random Numbers Using a Binary Tree With PID

Aggregated on: Thu Jun 29 2023 15:31:01 GMT+0000 (Coordinated Universal Time)

Random numbers (whether true or pseudo) have broad applications for various purposes, including security, monetary transactions, Machine Learning, gaming, statistics, cryptography, simulation, literature, music, and art. Various approaches and algorithms exist for generating non-colliding random numbers, including the popular Fischer/Knuth Yates algorithm. Besides the popular Fischer/Knuth Yates algorithm, in this article, I’ll show you how you can generate non-colliding pseudo-random numbers using a binary tree with PID (Process IDentifier) without any APIs.

View more...

How To Improve GraphQL API Security

Aggregated on: Thu Jun 29 2023 15:31:01 GMT+0000 (Coordinated Universal Time)

The open-source GraphQL query language has a ton to offer enterprises seeking a more scalable, flexible, developer-friendly, and modernized approach to API-driven development. That said, because I’m a security professional, I tend to focus on the new opportunities GraphQL also gives attackers. It’s been increasingly tempting for enterprises to dive headlong into GraphQL without fully assessing and addressing its security and operational requirements. However, doing so places intense pressure on security architects, DevOps and DevSecOps teams, and even developers themselves. I’ve recently taken a deep dive into Inigo, a GraphQL security and management toolset. Here I’ll share a how-to guide for teams ready to introduce more secure GraphQL implementations based on what I’ve learned. 

View more...

Own ChatGPT Bot in Telegram

Aggregated on: Thu Jun 29 2023 15:01:02 GMT+0000 (Coordinated Universal Time)

Recently, mirror sites providing access to ChatGPT have started to appear. However, using them is unsafe because such sites can collect and analyze all your correspondence. Especially those sites that provide such access completely free of charge. There is a demand for such sites because some countries block access to ChatGPT, and OpenAI blocks access to some countries. And for some users, 20 dollars for a ChatGPT subscription is expensive.  So today, we will write our own chatbot based on ChatGPT in the Telegram messenger. 

View more...

The Evolution and Coexistence of Web 2.0 and Web 3.0

Aggregated on: Thu Jun 29 2023 14:46:01 GMT+0000 (Coordinated Universal Time)

Web 3.0 has grown in popularity over the last few years and has fast become a tool for the empowerment of users in regard to ownership and sharing of data. The premise is that Web 3.0 will bring back the digital industry to a decentralized model, driving forwards, monetization, ownership, and governance, that was not as prominent through Web 2.0’s centralized model. The basic principles of technological evolution dictate that when a new model is created, it replaces the previous version; that’s precisely what happened between Web 1.0 and Web 2.0. However, Web 3.0 will not follow the same pattern; instead, it has the potential to enhance instead of replace Web 2.0.

View more...

Sticky Sessions With Apache APISIX

Aggregated on: Thu Jun 29 2023 14:46:01 GMT+0000 (Coordinated Universal Time)

Sticky sessions, also known as session affinity, is a mechanism by which a routing component that acts as a facade always routes a request to the same underlying upstream node. In this post, I'll describe the reason behind sticky sessions, available alternatives, and how to implement them via Apache APISIX. Why Sticky Sessions? Sticky sessions became popular when we stored the state on the upstream node, not the database. I'll use the example of a simplified e-commerce shop to explain further.

View more...

Got Data? How SMOTE and GANs Create Synthetic Data

Aggregated on: Thu Jun 29 2023 14:46:01 GMT+0000 (Coordinated Universal Time)

Synthetic data is data that is artificially created. It is often used in machine learning and artificial intelligence (AI) applications, where it can be used to augment existing datasets or to create new datasets altogether. There are two main types of synthetic data:

View more...

Best Practices for Writing Unit Tests: A Comprehensive Guide

Aggregated on: Thu Jun 29 2023 14:01:01 GMT+0000 (Coordinated Universal Time)

Why Unit Tests Matter Unit tests play a critical role in the software development life cycle. They allow developers to verify the correctness of individual code units, such as functions, methods, or classes. Here are some reasons why unit tests are crucial: Bug Detection: Unit tests help identify bugs and issues early in the development process, minimizing the chances of them propagating to other parts of the codebase. Code Refactoring: Unit tests provide a safety net when changing existing code. They ensure that the modified code continues functioning as expected, even after refactoring. Documentation: Unit tests serve as living documentation, showcasing how individual code units are intended to be used. They can help other developers understand the expected behavior and usage of specific code components. Regression Prevention: Unit tests act as a safety net against regressions. By re-running tests after making changes, you can quickly identify if any existing functionality has been inadvertently broken. Writing Effective Unit Tests Test Isolation To write reliable unit tests, it's essential to ensure test isolation. Each test should focus on a specific code unit and not depend on other units or external resources. By isolating tests, you better control the test environment and minimize the potential for false positives or negatives.

View more...

How To Use Terraform to Provision and Configure Distributed YugabyteDB Clusters

Aggregated on: Thu Jun 29 2023 13:31:01 GMT+0000 (Coordinated Universal Time)

Terraform is a popular Infrastructure as Code tool that simplifies the process of creating, managing, and updating infrastructure components. In this blog post, I’ll explore how to use Terraform to effectively provision and configure distributed YugabyteDB Managed clusters. I will guide you through the process of configuring the YugabyteDB Managed Terraform provider, defining variables, initializing the Terraform project, and adjusting configurations as needed. Let's dive in!

View more...

TDD and the Impact on Security

Aggregated on: Thu Jun 29 2023 12:31:01 GMT+0000 (Coordinated Universal Time)

Test-driven development (TDD) is a software development approach that prioritizes writing automated tests while creating the actual code. There follows a cycle of writing a failed test, writing the code to make the test pass, and then refactoring the code. TDD was originally developed to ensure the quality, maintainability and expandability of the software created over the long term. The specific knowledge about the individual source text passages should also be shown in the tests. Thus, a transfer of responsibility between developers is supported. Better than any documentation, tests are always up-to-date regarding the function implemented in the source code. However, TDD also has a positive impact on the security of a program. And that's what we're going to look at now.

View more...

Introduction To Non-Linear Data Structure

Aggregated on: Thu Jun 29 2023 12:01:01 GMT+0000 (Coordinated Universal Time)

Introduction To Non-Linear Data Structure Data structures are the backbone of computer programming. They provide a way of organizing and storing data in a computer’s memory, which allows efficient and fast access to that data. While many data structures are linear, meaning that they store data in a straight line or sequence, there are also non-linear data structures that store data in more complex ways. Data structures are essential tools for organizing and managing data in computer science. They are used to store, retrieve, and manipulate data efficiently. Non-linear data structures are one such category of data structures that allow for complex relationships and dependencies between data elements.

View more...

Managing AI-Powered Java App With API Management

Aggregated on: Thu Jun 29 2023 00:46:01 GMT+0000 (Coordinated Universal Time)

In this article, we will explore how to integrate OpenAI's ChatGPT APIs with a Spring Boot application and manage the APIs using Apache APISIX, an open-source API gateway. This integration will allow us to leverage the power of ChatGPT in our Spring Boot application, while APISIX will provide a robust, scalable, and secure way to manage the APIs. OpenAI ChatGPT APIs OpenAI's ChatGPT API is a powerful tool that we can use to integrate the capabilities of the ChatGPT model into our own applications, or services. The API allows us to send a series of messages and receive an AI model-generated message in response via REST. It offers a bunch of APIs to create text responses in a chatbot, code completion, generate images, or answer questions in a conversational interface. In this tutorial, we will use chat completion API to generate responses to a prompt (basically we can ask anything). Before starting with the tutorial, you can explore the API to have an understanding of how to authenticate to the API using API keys, how API request parameters and response look like.

View more...

A Deployment Is Not a Release: Control Your Launches With Feature Flags

Aggregated on: Wed Jun 28 2023 23:31:01 GMT+0000 (Coordinated Universal Time)

In the world of software development, the excitement of shipping code to users is often tempered by the inherent risks that come with each release. To mitigate these risks, one approach to choose is to decouple the deployment of code from when the feature goes live. This is achieved through a technique known as feature flagging. Feature flagging is a powerful tool that allows developers to safely push out new features to customers in a measured and gradual way. These features can be hidden behind if/then expressions in the code and can be made specific to some users or all of them.  In this blog, you’ll learn about what feature flags are and how to use them, and discover the benefits they offer.

View more...

Apache Kafka Is Not a Race, It Is a Journey!

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

Data Streaming is not a race, it is a Journey! Event-driven architectures and technologies like Apache Kafka or Apache Flink require a mind shift in architecting, developing, deploying, and monitoring applications. Legacy integration, cloud-native microservices, and data sharing across hybrid and multi-cloud setups are the norm, not an exception. This blog post explores success stories from data streaming journeys across industries, including banking, retail, insurance, manufacturing, healthcare, energy & utilities, and software companies. Data Streaming Is a Journey, Not a Race! Confluent’s maturity model is used across thousands of customers to analyze the status quo, deploy real-time infrastructure and applications, and plan for a strategic event-driven architecture to ensure success and flexibility in the future of the multi-year data streaming journey:

View more...

Develop a Geocaching Multiplayer Game Using Flutter, Spring Boot, Oracle Database Free Spatial, and OpenStreetMap

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

In this blog, I will show you how to quickly create a full-stack app using an extremely powerful, versatile, popular, and entirely free software stack consisting of Flutter, Spring Boot, Oracle Database with Spatial (SQL, JSON, and blockchain), and OpenStreetMap. All of the source is of course available here. As a use case, I will create a multi-player game based on geocaching. (Fun fact, there are now more than 3.1 million active geocaches in 196 different countries and even space.)

View more...

Infrastructure as Code (IaC) Tools, Part 2: Choosing the Right Tool

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

This article builds upon the previous blog, providing further insights into the best practices and challenges discussed in Part 1. It offers tangible approaches to assist you in selecting the ideal Infrastructure as Code (IaC) tool for your cloud infrastructure needs. The article will outline practical considerations for evaluating different tool options and carefully weighing the trade-offs involved. By referencing the guidance on tool categories and ecosystem tools provided in Part 1, this blog post aims to support your teams in making well-informed decisions when choosing the most suitable IaC tool to fulfill their unique cloud infrastructure requirements. Classification of Tools IaC tools are categorized based on the purpose of the tools and how they interact with the target systems.  

View more...

How To Debug Mobile App Database Problems and Optimize Data Storage Performance

Aggregated on: Wed Jun 28 2023 19:16:01 GMT+0000 (Coordinated Universal Time)

In the dynamic realm of mobile app development, a flawless user experience is the ultimate goal. However, lurking beneath the surface lies a complex web of data storage and retrieval. When database problems arise, they can disrupt even the most well-crafted applications. That's why knowing how to debug mobile app database problems and optimize data storage performance is essential for developers seeking excellence. Picture your app crashing unexpectedly, data corruption, or sluggish queries. These are signs of database challenges. This guild aims to delve into the art of debugging mobile app databases, equipping you with the necessary tools to unravel complexities and unlock optimal performance.

View more...

Demystifying DevOps: Key Insights Every Developer Needs To Thrive?

Aggregated on: Wed Jun 28 2023 18:46:01 GMT+0000 (Coordinated Universal Time)

The software development industry follows various development practices. But, the most recent and effective methodology for software development is DevOps. The concept behind DevOps is the merging of development and operations teams to collaborate on the development process. The DevOps development methodology enables efficient development, a faster feedback loop, and a secure development process. This article outlines everything that lies behind the concept of DevOps. If you are a developer, you need to know some of the fundamental concepts of DevOps practices.

View more...

O11y Guide: Without Observability, It's Just Code

Aggregated on: Wed Jun 28 2023 16:46:01 GMT+0000 (Coordinated Universal Time)

Welcome to another chapter in the ongoing series I started 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 time sharing who the observability players are, looked at the ongoing discussion around monitoring pillars versus phases, shared thoughts on architectural level choices being made, and shared the open standards available within the open source landscape. I continued onwards with a few of the architectural challenges you might encounter when older monolithic applications and monitoring tools are still part of an organization's infrastructure landscape. Finally, I walked you through the open-source visualization and dashboard project called Perses by introducing my hands-on workshop.

View more...

End-To-End Testing Using Cypress and Applitools

Aggregated on: Wed Jun 28 2023 16:46:01 GMT+0000 (Coordinated Universal Time)

Today's software applications are getting more complicated; thus, every testing team needs to focus on expanding test coverage. To achieve this goal, it is important to use a combination of testing types, such as unit testing, integration testing, system testing, and end-to-end testing, depending on the software application's complexity and requirements. End to End (E2E) testing is designed to ensure that all components of a software application are working together correctly and that the system as a whole meets the desired functionality, performance, and reliability requirements.

View more...

Introduction To Template-Based Email Design With Spring Boot

Aggregated on: Wed Jun 28 2023 16:16:01 GMT+0000 (Coordinated Universal Time)

Have you ever wondered how to create visually appealing and consistent emails that leave a lasting impression on your recipients? That's where template-based email design comes in. Template-based email design involves using pre-designed templates as a foundation for your email campaigns. These templates provide a framework that ensures consistency in branding, layout, and overall design. 

View more...