News AggregatorSetting Up Secure Data Lakes for Starlight Financial: A Guide to AWS ImplementationAggregated on: 2024-09-13 21:51:12 Continuing on our fictitious financial company, Starlight, series of posts, here is how to set up a data lake on AWS with security as the primary thought. Introduction In the fast-moving financial industry, data is a core asset. Starlight Financial needs to use vast amounts of data for decision-making, improving customer experience, and keeping ahead of its rivals. Consider a data lake: it's a vital part of modern data architectures, letting enterprises store both structured and unstructured data in large quantities of any kind whatsoever. Tony Hoare famously observed that with great data comes great responsibility — and so it is. Eventually, it will be some comfort to know that one of the most important steps for consultancy in validating big data architectures using AWS services has been elucidated. That is to say: test them just like any other system you might use. This is a guide to establishing a highly secure data lake using AWS services, specifically focused on the needs of financial institutions, written by us using a blog structure. View more...Synchronizing Files from Maximo Application Suite 8 To a Shared Drive Without OpenShift IntegrationAggregated on: 2024-09-13 20:51:12 In IBM Maximo 7.6 and earlier versions, it was common to have Maximo drop files directly onto a network shared drive connected to your administrative server. This setup allowed for seamless file handling and sharing across your network. With the advent of Maximo Application Suite (MAS) 8, you can achieve similar functionality if the shared drive is integrated as part of your OpenShift storage class (e.g., NFS, CSI). However, there are scenarios where you might not want the shared drive to be part of OpenShift. In this article, we explore how to implement file synchronization from MAS8 to a shared drive without involving OpenShift storage. Design and Solution Implementation In this solution, we provide a script that runs as a part of your Orchestrator server, using a kubeconfig file for authentication. Additionally, ensure that the shared drive is mounted to the Orchestrator server. This setup allows you to copy files from the MAXINST pod to the shared drive without integrating the drive into OpenShift. View more...A Short History of AJAX and SSRAggregated on: 2024-09-13 19:21:12 My journey in programming began over two decades ago, a time when JavaScript was a far cry from its current state, and developers were primarily focused on Microsoft Internet Explorer. One of my proudest achievements back then was writing a few lines of code that allowed users to add and remove table rows entirely on the client side. We called it DHTML. Many developers today have forgotten about it — or never knew it existed. A few years later, AJAX emerged, revolutionizing the way we approached web development. The emergence of AJAX marked a significant shift in web development, transferring more logic from the server to the client, and this shift was not without reason. View more...The Critical Role of Data at Rest Encryption in CybersecurityAggregated on: 2024-09-13 17:51:12 Securing information is crucial as cyber-attacks are getting more sophisticated. Data residing in an unprotected state at rest (databases, stored files, and backups) pose one of the most significant risks. Data at rest encryption is necessary to guarantee that information is safe and unreadable even in the event of illegal access. This discussion highlights why encrypting data is seen as an indispensable part of bolstering overall cyber security and keeping assets safe from unwanted entry. View more...How To Solve OutOfMemoryError: MetaspaceAggregated on: 2024-09-13 16:21:12 There are 9 types of java.lang.OutOfMemoryErrors, each signaling a unique memory-related issue within Java applications. Among these, java.lang.OutOfMemoryError: Metaspace is a challenging error to diagnose. In this post, we’ll delve into the root causes behind this error, explore potential solutions, and discuss effective diagnostic methods to troubleshoot this problem. Let’s equip ourselves with the knowledge and tools to conquer this common adversary. JVM Memory Regions To better understand OutOfMemoryError, we first need to understand different JVM Memory regions. Here is a video clip that gives a good introduction to different JVM memory regions. But in a nutshell, JVM has the following memory regions: Figure 1: JVM memory regions View more...Understanding the Purposes of Key Terraform Files and How to Structure Their FoldersAggregated on: 2024-09-12 19:21:11 Terraform is the go-to platform for deploying and managing infrastructure as code (IaC). But for Terraform to function, it needs a set of configuration files that specify the resources, settings, and structure of your infrastructure. How you create and organize IaC files will have a big impact on how effective and efficient your IaC deployment becomes, especially as your environment scales and evolves. The goal of this article is to help you understand the role and function of some of the most critical Terraform files, and how you can structure their folders to optimize the efficiency and scalability of your cloud resources. Learn about the importance of keeping Terraform files in order, and explore some tips for making sure your setup serves your IaC operations well. View more...Designing a Secure Architecture for Distributed SystemsAggregated on: 2024-09-12 17:21:11 Securing distributed systems is a complex challenge due to the diversity and scale of components involved. With multiple services interacting across potentially unsecured networks, the risk of unauthorized access and data breaches increases significantly. This article explores a practical approach to securing distributed systems using an open-source project. The project demonstrates how to integrate several security mechanisms and technologies to tackle common security challenges such as authentication, authorization, and secure communication. Understanding Security Challenges in Distributed Systems Distributed systems involve multiple services or microservices that must communicate securely across a network. Key security challenges in such architectures include: View more...How To Build an OpenAI Custom GPT With a Third-Party APIAggregated on: 2024-09-12 16:21:11 With the advent of Large Language Models (LLM), the conversational user interface has become very popular. You simply ask what you're seeking, and ChatGPT produces an output. In addition, the model can perform actions in response to your command or question and present you with the result. This opened up a huge opportunity to build a new kind of interface where the only input is the user's words — written or spoken. This is fantastic, as you can imagine the limitless possibilities. What we need is for LLMs to have access to as many complex, real-world actions as possible, which they can then invoke appropriately. This is where third-party APIs come into the picture. View more...Open-Source Data Management Practices and PatternsAggregated on: 2024-09-12 15:36:11 Open-source data architectures offer organizations and teams significant benefits, ranging from reduced vendor lock-in and improved cost effectiveness to greater scalability, availability, and flexibility. In this Refcard, you'll learn core practices for building an open-source data architecture stack, along with design patterns for infrastructure components, high availability, scalability, security, and more. View more...10 Things To Avoid in Domain-Driven Design (DDD)Aggregated on: 2024-09-12 15:21:11 Domain-Driven Design (DDD) is an important strategic approach to software development. It involves deeply understanding and modeling a business domain, particularly beneficial in complex domains with intricate business rules, processes, and interactions. However, effectively implementing DDD requires discipline, a strong grasp of the domain, and the avoidance of common pitfalls that can lead to suboptimal designs and technical debt. In this article, we'll explore 10 things to avoid in DDD and examples to illustrate these pitfalls. 1. Focusing Too Much on Technical Patterns Sample Scenario A team begins a project by excessively creating repositories, aggregates, and value objects without fully grasping the business domain. For example, they develop a complicated repository for managing Customer entities without understanding how customers are represented and utilized within the business. Consequently, the repository contains numerous unnecessary methods that do not align with the domain's actual use cases and requirements. View more...Modern Authentication on .NET: OpenID Connect, BFF, SPAAggregated on: 2024-09-12 14:21:11 As web technologies continue to advance, so do the methods and protocols designed to secure them. The OAuth 2.0 and OpenID Connect protocols have significantly evolved in response to emerging security threats and the growing complexity of web applications. Traditional authentication methods, once effective, are now becoming outdated for modern Single Page Applications (SPAs), which face new security challenges. In this context, the Backend-For-Frontend (BFF) architectural pattern has emerged as a recommended solution for organizing interactions between SPAs and their backend systems, offering a more secure and manageable approach to authentication and session management. This article explores the BFF pattern in depth, demonstrating its practical application through a minimal solution implemented with .NET and React. By the end, you'll have a clear understanding of how to leverage the BFF pattern to enhance the security and functionality of your web applications. Historical Context The history of OAuth 2.0 and OpenID Connect reflects the ongoing evolution of Internet technologies. Let’s take a closer look at these protocols and their impact on modern web applications. View more...Understanding Floating-Point Precision Issues in JavaAggregated on: 2024-09-12 13:21:11 Java Floating Numbers Look Familiar In Java, we have two types of floating-point numbers: float and double. All Java developers know them but can't answer a simple question described in the following meme: Are you robot enough? View more...Uncovering a Prototype Pollution Regression in the Core Node.js ProjectAggregated on: 2024-09-11 23:21:11 As a Node.js developer and security researcher, I recently stumbled upon an interesting security regression in the Node.js core project related to prototype pollution. This happened to be found while I was conducting an independent security research for my Node.js Secure Coding books and yet the discovery highlights the complex nature of security in open-source projects and the challenges of maintaining consistent security measures across a large codebase. Even at the scale of a project like Node.js, regressions can occur, potentially leaving parts of the codebase vulnerable to attack. View more...Optimizing Data Management for AI Success: Industry Insights and Best PracticesAggregated on: 2024-09-11 22:21:11 As artificial intelligence (AI) continues transforming industries, organizations face increasing challenges in managing and utilizing data for AI initiatives. Recent industry surveys and expert insights highlight the critical role of effective data management in AI success. This article explores key trends, challenges, and best practices in data management for AI projects, providing valuable insights for developers, engineers, and architects based on a recent discussion with Adrian Estala, VP and Field Chief Data Officer at Starburst. The Imperative of Real-Time Data Access in AI Real-time data access has emerged as a crucial factor for AI success. Implementing real-time analytics poses several challenges for organizations: View more...How To Set Up and Configure the Debugger in Visual Studio Code for React.js [Video]Aggregated on: 2024-09-11 21:36:10 In this article, we’re diving into a critical aspect of React development: setting up and configuring the debugger in Visual Studio Code. Debugging is a crucial part of development that allows you to step through your code, inspect variables, and quickly fix issues, without relying heavily on console logs. This makes the debugging process more efficient and enjoyable. Getting Started Before we begin, make sure you have the following tools installed: View more...How Stalactite ORM Implements Its Fluent DSLAggregated on: 2024-09-11 19:36:11 “DX”, aka Developer Experience One of the goals of Stalactite is to make developers aware of the impact of the mapping of their entities onto the database, and, as a consequence, onto performances. To fulfill this goal, the developer's experience, as a user of the Mapping API, is key to helping him express his intention. The idea is to guide the user-developer in the choices he can make while he describes its persistence. As you may already know, Stalactite doesn’t use annotation or XML files for that. It proposes a fluent API that constrains user choices according to the context. To clarify: available methods after a call to mapOneToOne(..) are not the same as the ones after mapOneToMany(..). This capacity can be done in different ways. Stalactite chose to leverage Java proxies for it and combines it with the multiple-inheritance capability of interfaces. View more...How To Implement Specific Distributed System Patterns Using Spring Boot: IntroductionAggregated on: 2024-09-11 18:36:10 Regarding contemporary software architecture, distributed systems have been widely recognized for quite some time as the foundation for applications with high availability, scalability, and reliability goals. When systems shifted from a centralized structure, it became increasingly important to focus on the components and architectures that support a distributed structure. Regarding the choice of frameworks, Spring Boot is a widely adopted framework encompassing many tools, libraries, and components to support these patterns. This article will focus on the specific recommendations for implementing various distributed system patterns regarding Spring Boot, backed by sample code and professional advice. Spring Boot Overview One of the most popular Java EE frameworks for creating apps is Spring. The Spring framework offers a comprehensive programming and configuration mechanism for the Java platform. It seeks to make Java EE programming easier and increase developers' productivity in the workplace. Any type of deployment platform can use it. It tries to meet modern industry demands by making application development rapid and straightforward. While the Spring framework focuses on giving you flexibility, the goal of Spring Boot is to reduce the amount of code and give developers the most straightforward approach possible to create web applications. Spring Boot's default codes and annotation setup lessen the time it takes to design an application. It facilitates the creation of stand-alone applications with minimal, if any, configuration. It is constructed on top of a module of the Spring framework. View more...Optimizing Container Synchronization for Frequent WritesAggregated on: 2024-09-11 17:36:10 Efficient data synchronization is crucial in high-performance computing and multi-threaded applications. This article explores an optimization technique for scenarios where frequent writes to a container occur in a multi-threaded environment. We’ll examine the challenges of traditional synchronization methods and present an advanced approach that significantly improves performance for write-heavy environments. The method in question is beneficial because it is easy to implement and versatile, unlike pre-optimized containers that may be platform-specific, require special data types, or bring additional library dependencies. Traditional Approaches and Their Limitations Imagine a scenario where we have a cache of user transactions: View more...8 Practices Software Engineers Should Adopt and Champion for CybersecurityAggregated on: 2024-09-11 16:21:10 The Importance of Cybersecurity I firmly believe that in today's cybersecurity expectations, software engineers should prioritize the security of their computer systems and internal IT networks. I would consider it to be a mistake to rely heavily on technology due to the simple fact that a lot of risks are non-technical in nature. The Internet can leave businesses vulnerable to data breaches and ransomware attacks that can cause lasting reputational damage. These non-technical risks can indeed be addressed using technical solutions. These incidents can additionally result in significant financial losses and potential legal issues. In my opinion, implementing strong cybersecurity measures is not just a technical requirement but a critical initiative for any business looking to strengthen its defenses and resilience. View more...The Significance of Complex Event Processing (CEP) With RisingWave for Delivering Accurate Business DecisionsAggregated on: 2024-09-11 15:21:10 About Complex Event Processing (CEP) Complex event processing (CEP) is a highly effective and optimized mechanism that combines several sources of information and instantly determines and evaluates the relationships among events in real time. It is a real-time data and event identification, processing, and analysis approach. By gathering and combining across various IoT sensor feeds, CEP has a transformative effect by collecting IoT sensor streams for real-time monitoring, analytics, and troubleshooting. CEP provides insight into what's happening by continuously comparing incoming events to patterns. This enables us to operate proactively and effectively. Although event stream processing (ESP) and CEP are often used interchangeably, they are not exactly the same. Traditional ESP applications typically handle a single stream of data that arrives in the correct time sequence. For instance, in algorithmic trading, an ESP application might analyze a stream of pricing data to decide whether to buy or sell a stock. However, ESP generally doesn't account for event causality or hierarchies. This limitation led to the development of CEP, which is essentially a more advanced and sophisticated version of ESP. View more...Real-Time GenAI With RAG Using Apache Kafka and Flink To Prevent HallucinationsAggregated on: 2024-09-11 14:21:10 How do you prevent hallucinations from large language models (LLMs) in GenAI applications? LLMs need real-time, contextualized, and trustworthy data to generate the most reliable outputs. This blog post explains how RAG and a data streaming platform with Apache Kafka and Flink make that possible. A lightboard video shows how to build a context-specific real-time RAG architecture. Also, learn how the travel agency Expedia leverages data streaming with Generative AI using conversational chatbots to improve the customer experience and reduce the cost of service agents. What Is Retrieval Augmented Generation (RAG) in GenAI? Generative AI (GenAI) refers to artificial intelligence (AI) systems that can create new content, such as text, images, music, or code, often mimicking human creativity. These systems use advanced machine learning techniques, particularly deep learning models like neural networks, to generate data that resembles the training data they were fed. Popular examples include language models like GPT-3 for text generation and DALL-E for image creation. View more...Modes and Modality in Performance TestingAggregated on: 2024-09-11 13:21:10 When reporting summary statistics for performance test results, there's a common assumption that the data follows a central tendency. But is this always true? What if the data does not exhibit a single central tendency? In such cases, the traditional metrics like averages might be misleading. This article explores why it's crucial to check for modality of performance test results, how to detect multimodal distributions, and how to handle them. For users of JMeter, a new plugin is introduced to help automate this process. View more...Automatic 1111: Custom Sketch-To-Image APIAggregated on: 2024-09-10 22:21:10 In this article, we will develop a custom Sketch-to-Image API for converting hand-drawn or digital sketches into photorealistic images using stable diffusion models powered by a ControlNet model. We will extend the Automatic 1111's txt2img API to develop this custom workflow. Prerequisites Stable Diffusion Web UI (Automatic 1111) running on your local machine. Follow the instructions here if you are starting from scratch. SD APIs Enabled. Follow the instructions on this page (scroll down to the Enabling APIs section) to enable the APIs if you haven't already done so. ControlNet extension installed: Click on the Extensions tab on Stable Diffusion Web UI. Navigate to the Install from URL tab. Paste the following link in URL for extension's git repository input field and click Install. After the successful installation, restart the application by closing and reopening the run.bat file if you're a PC user; Mac users may need to run ./webui.sh instead. After restarting the application, the ControlNet dropdown will become visible under the Generation tab in the txt2img screen. Download and add the following models to Automatic 1111: RealVisXL_V4.0_Lightning: HuggingFace: SG161222/RealVisXL_V4.0_Lightning. Copy this model to the Stable Diffusion models folder which is under the project root directory:/models/Stable-diffusion diffusers_xl_canny_full - HuggingFace: lllyasviel/sd_control_collection Copy the downloaded model to /extensions/sd-webui-controlnet Payload Now that we have all our prerequisites in place, let's build the payload for the/sdapi/v1/txt2img API. View more...Exploring Real-Time Data Ingestion Into Snowflake Using CockroachDB, Redpanda, and Kafka ConnectAggregated on: 2024-09-10 21:21:10 Previous Articles on Snowflake Tour of Snowflake ingestion using CockroachDB and Redpanda Connect Integrating Snowflake with Trino Previous Articles on CockroachDB CDC Emitting Protocol Buffers with CockroachDB CDC Queries Using CockroachDB CDC with Apache Pulsar Using CockroachDB CDC with Azure Event Hubs SaaS Galore: Integrating CockroachDB with Confluent Kafka, FiveTran, and Snowflake Using CockroachDB CDC with Confluent Cloud Kafka and Schema Registry CockroachDB CDC using Minio as cloud storage sink CockroachDB CDC using Hadoop Ozone S3 Gateway as cloud storage sink Motivation This article builds upon the previous discussion in "Tour of Snowflake ingestion using CockroachDB and Redpanda Connect," where we investigated the process of streaming changefeeds from CockroachDB to Snowflake using Redpanda Connect and Snowpipe in batch mode. Here, we will shift our focus to Kafka Connect and demonstrate how both batch and streaming modes can be utilized for data ingestion into Snowflake. Overview Deploy a CockroachDB cluster with enterprise changefeeds Deploy Snowflake Deploy Kafka Connect Verify Conclusion Detailed Instructions Deploy a CockroachDB Cluster With Enterprise Changefeeds Start by either launching a CockroachDB instance or utilizing a managed service. View more...REST and HTTP SemanticsAggregated on: 2024-09-10 20:21:10 Roy Fielding created REST as his doctorate dissertation. After reading it, I would boil it down to three basic elements: A document that describes object state A transport mechanism to transmit the object state back and forth between systems A set of operations to perform on the state While Roy was focused solely on HTTP, I don't see why another transport could not be used. Here are some examples: View more...Explainable AI (XAI): How Developers Build Trust and Transparency in AI SystemsAggregated on: 2024-09-10 19:21:10 Developers working on Explainable AI (XAI) must address several key aspects, such as the problem, boundary scope, and potential solutions of XAI, as well as some specific use cases and benefits that can enhance an organization's credibility when implementing or leveraging this technology. The more AI is incorporated into different sectors, developers play a critical role in making those systems interpretable and transparent. XAI is crucial in making AI models highly interpretable and debuggable; it also guarantees responsible use of highly complex AI technologies, which should be fair, transparent, and accountable to society's users and stakeholders. View more...Transforming Continuous Delivery With Feature FlagsAggregated on: 2024-09-10 18:21:10 Continuous Delivery is a practice and methodology that helps you build and deploy your software faster so that it can be released to production systems at any time. It facilitates shortening the lifecycle times of various development and operations processes. Effectively applying the concepts of Continuous Integration (CI) and Continuous Deployment (CD) helps achieve the benefits of the continuous delivery principles, also enabling faster software releases. We explore the challenges encountered by software teams implementing CI/CD and demonstrate how feature flags can help mitigate these risks. View more...Accelerate Your Journey to a Modern Data Platform Using CoalesceAggregated on: 2024-09-10 17:06:10 Most organizations face challenges while adapting to data platform modernization. The critical challenge that data platforms have faced is improving the scalability and performance of data processing due to the increased volume, variety, and velocity of data used for analytics. This article aims to summarize answers to the challenging questions of data platform modernization, and here are a few questions: View more...Digital GardenAggregated on: 2024-09-10 16:06:10 The topic of note-taking remains relevant today. We know the benefits it provides to the author. We are familiar with various approaches to note-taking and tools that can be used, and we have choices. Imagine you have found your approach, your tool, and your note base is growing and pleasing to the eye. What next? I want to discuss one path of development in this area. This article is dedicated to the concept of a digital garden — the philosophy of publicly maintaining personal notes. View more...How Can the Scalability of MySQL Be Improved for BenchmarkSQL TPC-C Testing?Aggregated on: 2024-09-10 15:06:10 Current State of MySQL 5.7 MySQL 5.7 is not ideal in terms of scalability. The following figure illustrates the relationship between TPC-C throughput and concurrency in MySQL 5.7.39 under a specific configuration. This includes setting the transaction isolation level to Read Committed and adjusting the innodb_spin_wait_delay parameter to mitigate throughput degradation. Figure 1: Scalability problems in MySQL 5.7.39 during BenchmarkSQL testing View more...Mastering Multi-Cloud and Edge Data Synchronization: A Retail Use Case With KubeMQ’s Java SDKAggregated on: 2024-09-10 14:06:10 In today’s rapidly evolving enterprise landscape, managing and synchronizing data across complex environments is a significant challenge. As businesses increasingly adopt multi-cloud strategies to enhance resilience and avoid vendor lock-in, they are also turning to edge computing to process data closer to the source. This combination of multi-cloud and edge computing offers significant advantages, but it also presents unique challenges, particularly in ensuring seamless and reliable data synchronization across diverse environments. In this post, we’ll explore how the open-source KubeMQ’s Java SDK provides an ideal solution for these challenges. We’ll focus on a real-life use case involving a global retail chain that uses KubeMQ to manage inventory data across its multi-cloud and edge infrastructure. Through this example, we’ll demonstrate how the solution enables enterprises to achieve reliable, high-performance data synchronization, transforming their operations. View more...Top Security Flaws Hiding in Your Code Right Now and How To Fix ThemAggregated on: 2024-09-10 13:51:10 In 2019, a famous breach in Fortnite, the famous game, reportedly put millions of players at risk of malware. The incident highlighted the importance of properly securing SQL databases. But this is not an isolated issue. View more...Zero To AI Hero, Part 2: Understanding Plugins in Semantic Kernel, A Deep Dive With ExamplesAggregated on: 2024-09-10 13:06:10 I talked a little about semantic kernel in Part 1 but decided to leave out the juicy part. There are a few gears in SK. They spin and connect like the inside of the watch to make it do the magic. One of those gears is plugins. Plugins are the robotic arms of Semantic Kernel, capable of doing some work beyond chit-chatting. Why Do We Need Plugins? We all know GenAI is about — surprise, surprise: "Generative AI". What do they train on? Tokens. These tokens are then mapped onto vector databases and can be used to predict the next token, etc, and the story goes on and on. What are these models capable of? Predicting subsequent tokens, and that's about it (at least as of now). So, for those who think GAI is equal to AGI, no! Not yet! View more...Spring Boot GoT: Game of Trace!Aggregated on: 2024-09-09 23:06:09 When we, developers, find some bugs in our logs, this sometimes is worse than a dragon fight! Let's start with the basics. We have this order of severity of logs, from most detailed to no detail at all: View more...Working With Multiple testng.xml FilesAggregated on: 2024-09-09 20:06:09 While working on an open source GitHub project that was created to showcase the working of Selenium WebDriver framework with Java, as the project grew, there was a need to create multiple testng.xml files for running different tests. These multiple files were created to segregate the tests and place all the tests related to a respective website in a single testng.xml (I have used different demo websites to demo different actions that can be automated using Selenium WebDriver). View more...Model-Driven Development and TestingAggregated on: 2024-09-09 19:06:09 The Meta of Design With several decades of experience, I love building enterprise applications for companies. Each solution requires a set of models: an SQL database, an API (Application Programming Interface), declarative rules, declarative security (role-based access control), test-driven scenarios, workflows, and user interfaces. The "meta" approach to design requires thinking of how each of these components interacts with the other. We also need to understand how changes in the scope of the project impact each of these meta-components. While I have worked in many different languages (APL, Revelation/PICK, BASIC, Smalltalk, Object/1, Java, JavaScript, Node.js, Python) these models are always the foundation that influences the final integrated solution. Models are meta abstractions that describe how the shape, content, and ability of the object will behave in the running environment regardless of language, platform, or operating system (OS). Model First Approach Starting with an existing SQL Schema and a good ORM allows the abstraction of the database and the generation of an API. I have been working with ApiLogicServer (a GenAI-powered Python open-source platform) which has a command line interface to connect the major SQL databases and create an SQLAlchemy ORM (Object-Relational Model). From this model, an Open API (aka Swagger) for JSON API is created, and a YAML file (model) drives a react-admin runtime. The YAML file is also used to build an Ontimize (Angular) user interface. Note that the GenAI part of ApiLogicServer lets me use a prompt-driven approach to get this entire running stack using just a few keywords. View more...The Pre-Mortem: Preventing Product Failure Before It StrikesAggregated on: 2024-09-09 17:06:09 TL; DR: The Pre-Mortem: A Non-negotiable Part of Your Product Development Toolbox Do you want to build products that avoid costly mistakes, meet customer needs, and drastically enhance your career prospects? The the pre-mortem is your secret weapon! By imagining how a project might fail before it even begins, teams can identify and mitigate hidden risks early, ensuring a more resilient, successful outcome. This article explains why pre-mortems are a brilliant tool for risk mitigation, improving your team’s decision process, and how they can transform your product development process. Learn how to apply this proactive strategy and create bulletproof products. View more...What Are Logging Levels?Aggregated on: 2024-09-09 15:51:09 Logging is one of the most important parts of the distributed systems. Many things can break, but when the logging breaks, then we are completely lost. In this blog post, we will understand log levels and how to log efficiently in distributed systems. Logging Levels Whenever we log a message, we need to specify the log level or log severity. It’s an indicator of how important the message is and who should be concerned. View more...Data Storage Formats for Big Data Analytics: Performance and Cost Implications of Parquet, Avro, and ORCAggregated on: 2024-09-09 14:06:09 Efficient data processing is crucial for businesses and organizations that rely on big data analytics to make informed decisions. One key factor that significantly affects the performance of data processing is the storage format of the data. This article explores the impact of different storage formats, specifically Parquet, Avro, and ORC on query performance and costs in big data environments on Google Cloud Platform (GCP). This article provides benchmarks, discusses cost implications, and offers recommendations on selecting the appropriate format based on specific use cases. Introduction to Storage Formats in Big Data Data storage formats are the backbone of any big data processing environment. They define how data is stored, read, and written directly impacting storage efficiency, query performance, and data retrieval speeds. In the big data ecosystem, columnar formats like Parquet and ORC and row-based formats like Avro are widely used due to their optimized performance for specific types of queries and processing tasks. View more...Mastering Tailwind CSS: Overcome Styling Conflicts With Tailwind Merge and clsxAggregated on: 2024-09-06 23:08:09 People have been emailing and asking me to write something on some soft topics for beginners, as I write mostly for mid-level or seniors. So, here is a new article for beginners, especially for UI developers. Today, let's explore the common challenges developers face when working with Tailwind CSS and how to overcome them using the powerful combination of Tailwind Merge and clsx. View more...Mainframe Modernization: A Comprehensive Technical BlueprintAggregated on: 2024-09-06 21:08:09 Mainframe systems have been the backbone of enterprise computing for decades, renowned for their reliability, performance, and security. However, the evolving business landscape demands agility, scalability, and cost-effectiveness, prompting organizations to explore cloud-based solutions. Major technology companies, including cloud providers and system integrators, have invested heavily in mainframe migration practices, recognizing the significance of this transformation. Mainframes and cloud computing each have their strengths and specific use cases. It's not fair to generalize either, and in practice, a hybrid approach is common. This post will explore a practical solution for mainframe workload migration using a hybrid pattern, where certain workloads move to the cloud while still interacting with on-premises applications and data sources. View more...Comparison of Apache Astro and AirflowAggregated on: 2024-09-06 19:08:09 Effective workflow orchestration is the key to creating automation around complex process-oriented activities in the modern landscape of software development. Considering data engineering and data science, Astro and Apache Airflow rise to the top as important tools used in the management of these data workflows. This article compares Astro and Apache Airflow, explaining their architecture, features, scalability, usability, community support, and integration capabilities. This should help software developers and data engineers in selecting the right tool for their specific needs and project requirements. Astro Overview Astro is a fully Kubernetes-native platform designed to easily orchestrate the workflows in cloud-native systems. It uses Kubernetes itself to handle container orchestration, which adds fault tolerance and elasticity out of the box. Hence, Astro works effectively in scenarios that require microservices and containerization to be essential to the architecture. View more...Principles of Modern Data InfrastructureAggregated on: 2024-09-06 17:08:09 The evolution of the internet over the past few decades has undeniably impacted how our societies function. From facilitating globalization to making new technology like social media and consumer apps available to nearly every person on the planet, the web has seeped into most aspects of our day-to-day lives. However, this ubiquity comes with an ever-growing need to manage enormous amounts of data, which requires better and better data infrastructure. Back in the Web 1.0 era, we could really only read static content on the internet. A decade later, with Web 2.0, it became possible to read and write on online social networks. Now, with Web 3.0 and the dawn of AI and blockchain, a single person generates around 1.7 MB of data every second. That adds up to approximately 146.88 GB of data per person per day. Such demanding workloads mean that data infrastructure is now mission-critical for most businesses. Modern data infrastructure supports everything from daily operational workloads (OLTP) to strategic decision-making workloads (OLAP). View more...DRY Your Apache APISIX ConfigAggregated on: 2024-09-06 15:08:09 DRY is an important principle in software development. This post will show you how to apply it to Apache APISIX configuration. The DRY Principle "Don't repeat yourself" (DRY) is a principle of software development aimed at reducing repetition of information which is likely to change, replacing it with abstractions that are less likely to change, or using data normalization which avoids redundancy in the first place. View more...Product Vision vs Technical Strategy: Bridging the Product-Engineering GapAggregated on: 2024-09-06 13:08:09 In the world of software engineering, a conflict between a product manager's vision and the engineering team's technical strategy is a recurring obstacle for many teams. While product managers strive to create disruptive and innovative products, engineers need to ensure that these visions can be implemented into successful realities either within the constraints of current technology or discover a breakthrough themselves. The gap between the product vision and the technical realities can be a daunting challenge, but balancing these two aspects is crucial for the success of any project. This article explores the dynamics between product vision and technical reality and how taking an iterative approach can help navigate the gap between the aspect and the feasibility. Understanding the Product Vision Imagine you are a builder (software developer) and are hired by a family (product manager) to build a house. The family will have an image of a dream house in their mind — a beautiful, large, comfortable home that will fulfill all their functional and lifestyle dreams (vision). Now, for the builder to do their job well, they need to understand the family's vision and then build upon it. But at the same time, the family's vision also needs to be well crafted and decipherable for the builder to comprehend it. Along similar lines, a well-defined and well-constructed product vision is essential for guiding a successful technical strategy. View more...Ember.js vs React.js: Comparing JavaScript TechnologiesAggregated on: 2024-09-05 23:08:08 Frontend technologies are integral to web development as they determine how users interact with a website or app. For this reason, picking the right front-end technology is essential for optimal user engagement and subsequent project success. React.js and Ember.js are among the most popular front-end technologies used in modern web development. Although both fall under the JavaScript umbrella, these technologies differ significantly. In this article, we will compare React.js vs Ember.js and explore their strengths and weaknesses to help you choose the most suitable one for your needs. View more...Lead a Successful Agile Transformation With the VICTORY FrameworkAggregated on: 2024-09-05 21:08:08 Agile transformations can be tough. They’re messy, time-consuming, and more often than not, they fail to deliver the promises that got everyone excited in the first place. That’s why it’s so important to approach an Agile transformation as a full-scale organizational change rather than just a shift in how our development teams work. In my years as a change management consultant, I have studied and applied various change management models, from John Kotter’s 8-Step Change Model to ADKAR and Lean Change Management by Jason Little. I have learned through these experiences and countless transformations that there isn’t a one-size-fits-all approach. View more...The AI Security Gap: Protecting Systems in the Age of Generative AIAggregated on: 2024-09-05 19:08:08 The rapid adoption of Generative AI (GenAI) and Large Language Models (LLMs) is transforming industries at an unprecedented pace. Nearly 90% of organizations are actively implementing or exploring LLM use cases, eager to harness the power of these revolutionary technologies. However, this enthusiasm is juxtaposed with a concerning lack of security preparedness. A recent GenAI Readiness report by Lakera reveals that only about 5% of organizations are confident in their GenAI security frameworks. This glaring disparity between adoption and security readiness raises a critical question: Is the market prepared for GenAI's potential security risks? View more...Keeping Two Multi-Master Databases Aligned With a Vector ClockAggregated on: 2024-09-05 16:53:08 In today's tech environment, there is a frequent requirement to synchronize applications. This need often arises during technology upgrades, where the goal is to transition a database and its processes from an outdated legacy system to a newer technology. In such scenarios, it's typically required to allow both applications to coexist for a period of time. Sometimes both applications, together with their own databases, must be maintained as masters because dismantling the processes dependent on the legacy one is not viable. Consequently, specific solutions for keeping the two master databases aligned are essential, ensuring that operations on one database are mirrored on the other one, and vice versa. In this article, we discuss a real case we dealt with by abstracting away from several technical details, but focusing on those decisions that shape the structure of our solution. View more...Setting Up a Data Warehouse for Starlight: A Comprehensive GuideAggregated on: 2024-09-05 15:08:08 In the rapidly evolving fintech industry, data is a cornerstone for driving innovation, ensuring compliance, and making informed decisions. For Starlight, a burgeoning fintech company, harnessing the power of data is crucial for maintaining a competitive edge. A data warehouse serves as the backbone for such data-driven initiatives, providing a centralized repository where data from various sources is consolidated, analyzed, and made accessible. A data warehouse is a specialized type of database optimized for analysis and reporting. Unlike traditional databases designed for transactional processing, data warehouses are tailored for query performance and complex analytics. They enable businesses to store vast amounts of historical data, query it efficiently, and derive actionable insights. View more... |
|