News Aggregator


AI/ML Innovation in the Kubernetes Ecosystem

Aggregated on: 2024-10-22 13:51:34

As organizations put artificial intelligence and machine learning (AI/ML) workloads into continuous development and production deployment, they need to have the same levels of manageability, speed, and accountability as regular software code. The popular way to deploy these workloads is Kubernetes, and the Kubeflow and KServe projects enable them there. Recent innovations like the Model Registry, ModelCars feature, and TrustyAI integrations in this ecosystem are delivering these improvements for users who rely on AI/ML. These, and other improvements, have made open source AI/ML ready for use in production. More improvements are coming in the future. Better Model Management AI/ML analyzes data and produces output using machine learning "models," which consist of code, data, and tuning information. In 2023, the Kubeflow community identified a key requirement to have better ways of distributing tuned models across large Kubernetes clusters. Engineers working on Red Hat's OpenShift AI agreed and started work on a new Kubeflow component, Model Registry.

View more...

Tracing With OpenTelemetry and Jaeger

Aggregated on: 2024-10-21 23:36:34

Tracing, a critical component, tracks requests through complex systems. This visibility reveals bottlenecks and errors, enabling faster resolutions. In a previous post of our Go web services series, we explored observability’s significance. Today, we focus on tracing. Jaeger collects, stores, and visualizes traces from distributed systems. It provides crucial insights into request flows across services. By integrating Jaeger with OpenTelemetry, developers can unify their tracing approach, ensuring consistent and comprehensive visibility. This integration simplifies diagnosing performance issues and enhances system reliability. In this post, we’ll set up Jaeger, integrate it with OpenTelemetry in our application, and explore visualizing traces for deeper insights. Motivation What we are working towards is a Jaeger dashboard that looks like this:

View more...

Serverless NLP: Implementing Sentiment Analysis Using Serverless Technologies

Aggregated on: 2024-10-21 22:36:34

In this article, I will discuss building a sentiment analysis tool using AWS serverless capabilities and NLTK. I will be using AWS lambda to run sentiment analysis using the NLTK-vader library and AWS API Gateway to enable this functionality as an API. This architecture eliminates the need for any server management while providing on-demand scalability and cost-efficiency. Before we dive in, ensure that you have the following:

View more...

Ditch the Unfinished Action Items

Aggregated on: 2024-10-21 21:36:34

TL; DR: Unfinished Action Items: How to Make Retrospectives Useful If your team consistently creates action items during Retrospectives but rarely completes them, you’re not alone. Unfinished action items are a major productivity killer and lead to stalled progress. This article highlights five actionable practices to ensure Retrospective tasks get done, including limiting action items in progress, assigning clear ownership, and adding a reviewing progress in every Retrospective. The key to real improvement isn’t in creating long lists — it’s in following through. By treating Retrospective action items with the same importance as other Sprint tasks, your team can finally break the cycle of unfinished improvements and see real, beneficial change, individually and at the team level.

View more...

How to Implement Client-Side Load Balancing With Spring Cloud

Aggregated on: 2024-10-21 20:36:34

It is common for microservice systems to run more than one instance of each service. This is needed to enforce resiliency. It is therefore important to distribute the load between those instances. The component that does this is the load balancer. Spring provides a Spring Cloud Load Balancer library. In this article, you will learn how to use it to implement client-side load balancing in a Spring Boot project. Client and Server Side Load Balancing We talk about client-side load balancing when one microservice calls another service deployed with multiple instances and distributes the load on those instances without relying on external servers to do the job. Conversely, in the server-side mode, the balancing feature is delegated to a separate server, that dispatches the incoming requests. In this article, we will discuss an example based on the client-side scenario.

View more...

Automate Private Azure Databricks Unity Catalog Creation

Aggregated on: 2024-10-21 19:36:34

Disclaimer: All the views and opinions expressed in the blog belong solely to the author and not necessarily to the author's employer or any other group or individual. This article is not a promotion for any cloud/data management platform. All the images and code snippets are publicly available on the Azure/Databricks website. What Is Databricks? Databricks is a powerful platform that helps people work with large amounts of data easily. It allows companies to store, process, and analyze their data in one place.

View more...

PostgreSQL 17: A Major Step Forward in Performance, Logical Replication, and More

Aggregated on: 2024-10-21 18:36:34

After a successful 3rd beta in August 2024, the PostgreSQL development group released the GA version on September 26th. Recently, I blogged about some of the key logical replication features that you'll see in PostgreSQL 17.  In this blog, I'll describe a couple of new performance features that you'll find in Postgres 17 as well as another important logical replication feature that I didn't cover in my earlier blog of this series.  PostgreSQL has grown remarkably over the years, and with each major release, it has become a more robust, reliable, and responsive database for both mission-critical and non-mission-critical enterprise applications. The global and vibrant PostgreSQL community is contributing to PostgreSQL's success, diligently ensuring that all changes are carefully scrutinized and reviewed before they are added to the project source code. It is also very encouraging to see big technology names like Microsoft, Google, Apple, and others investing in Postgres by developing in-house expertise and giving back to the open-source community.

View more...

Tech Trends 2024: Highlights on the Current Tech Industry From a Developer

Aggregated on: 2024-10-21 17:36:34

I have attended several events this year, and I’m constantly keeping my ear to the ground for the latest topics and trends in technology. As a developer focused mostly on data and database industries, I feel that this year has seen a massive expansion of data and efficiency use cases and interest. In this post, I’ll highlight some of the trends I’ve seen throughout 2024, especially in the data, graph, and analytics technology spaces. Whether you are simply curious about what is happening in technology industries or looking to put together interesting topics for papers or presentations, this post will include the greatest hits.

View more...

Hybrid Search: A New Frontier in Enterprise Search

Aggregated on: 2024-10-21 16:36:34

In the business landscape, information is crucial for an organization. Not only this but finding the right information at the right time is even more important.  This is where enterprise search comes in handy. Earlier traditional enterprise search engines fell short in understanding the context of user queries. These search engines used keyword matching to find results. Post that, vector search became the next promising solution that considered the context of the user query, providing more relevant results. 

View more...

Enhancing Observability in iOS Applications: Key Insights

Aggregated on: 2024-10-21 15:51:34

My name is Siarhei Misko, an iOS Team Lead with over eight years of experience. Today, I want to walk you through the essential topic of observability in mobile applications, focusing on iOS. We are going to take a closer look at how we can implement observability more easily and why it is so important to improve app performance and provide a better user experience. Why Observability Matters The very fundamental question is: how do we ensure our application is stable and working fine? Conventionally, the answer would point to testing. We fire up QA tests by using various test cases, test environments, and on specific devices. The thing is, these tests are synthetic and mostly remain incapable of reflecting real-world scenarios. In the real world, applications go through much more complex environments, and here is where observability bridges the gap between test conditions and real-world functionality.

View more...

Dust: Open-Source Actors for Java

Aggregated on: 2024-10-21 14:51:34

Virtual Threads Java 21 saw the supported introduction of virtual threads. Unlike regular Java threads (which usually correspond to OS threads), virtual threads are incredibly lightweight, indeed an application can create and use 100,000 or more virtual threads simultaneously.  This magic is achieved by two major changes to the JVM:

View more...

How To Secure Your Raspberry Pi and Enable Safe, Resilient Updates

Aggregated on: 2024-10-21 13:51:34

The venerable Raspberry Pi has been around for over a decade (officially created in 2009) and it has become a standard in many robotics, home automation, and other types of uses, especially for “makers” and other tinkerers. But it has also made serious inroads into the professional and enterprise world — just more quietly. It’s a capable, reliable, and powerful single-board computer (SBC) with a robust user community. For all its strengths, it does have a few notable weaknesses. The biggest one is security. Not because the SBC itself is insecure, and not because the Operating System (OS) is insecure (it runs Linux, which can be very well secured). The most vulnerable part of the Raspberry Pi is the fact that it boots and runs off of a micro SD card.

View more...

Securing Cloud-Native Applications: A CISO’s Perspective on Broken Access Control

Aggregated on: 2024-10-18 21:36:32

When we talk about security in cloud-native applications, broken access control remains one of the most dangerous vulnerabilities. The OWASP Top 10 lists it as the most prevalent security risk today, and for good reason: the impact of mismanaged permissions can lead to catastrophic outcomes like data breaches or ransomware attacks. For CISOs, addressing broken access control isn't just a technical challenge—it’s a strategic priority that touches nearly every aspect of an organization’s security posture. As part of my job as the VP of Developer Relations in Permit.io, I consulted with dozens of CISOs and security engineers leaders, from small garage startup founders to Fortune 100 enterprise security staff. This article will try to provide the most comprehensive perspective I gathered from these chats, guiding you in considering broken access control challenges in cloud-native applications.

View more...

How to Use Self Join and With Clause in Oracle

Aggregated on: 2024-10-18 20:36:32

The Oracle WITH clause is one of the most commonly used techniques to simplify the SQL source code and improve performance. In Oracle SQL, the 'WITH' clause also known as a Common Table Expression (CTE) is a powerful tool which is also used to enhance the code readability.  WITH is commonly used to define temporary named result sets, also referred to as subqueries or CTEs as defined earlier. These temporary named sets can be referenced multiple times within the main SELECT SQL query. The CTEs are like virtual tables and are very helpful in organizing and modularizing the SQL code.

View more...

Solving a Common Dev Grievance: Architecture Documentation

Aggregated on: 2024-10-18 19:36:32

The global developer population is expected to reach 28.7 million people by 2024, surpassing the entire population of Australia. Among such a large group, achieving unanimous agreement on anything is remarkable. Yet, there's widespread consensus on one point: good technical documentation is crucial and saves considerable time. Some even consider it a cornerstone of engineering success, acting as a vital link between ideas, people, and visions.

View more...

Secure Golden Images: A Blueprint for Vulnerability Management

Aggregated on: 2024-10-18 18:36:32

In environments with AWS Cloud workloads, a proactive approach to vulnerability management involves shifting from traditional patching to regularly deploying updated Secure Golden Images. This approach is well-suited to a modern Continuous Integration and Continuous Delivery (CI/CD) environment, where the goal is rapid, automated deployment — and doing this with AMIs (Amazon Machine Images) ensures that every instance benefits from consistent security updates. Creating the Golden Image The first step to securing your EC2 environment is building a Secure Golden Image (SGI) —a pre-configured AMI that serves as the baseline for deploying secure EC2 instances. An SGI should include:

View more...

Entity Creation With Asynchronous Pipelines in Distributed Systems

Aggregated on: 2024-10-18 16:36:32

Creating entities asynchronously in distributed systems presents challenges and benefits, especially for large enterprises seeking scalability, fault tolerance, and efficient user experiences. Asynchronous (async) pipelines for entity creation decouple services, handle failures gracefully, and minimize latency. These qualities enable enterprises to maintain flexible, high-performing systems as they scale. Let's explore the benefits, challenges, and solutions to build an effective pipeline in depth. Benefits of Asynchronous Pipelines in Entity Creation Graceful Failure Handling In complex distributed systems, certain tasks in the entity creation process are non-critical. Async pipelines allow failure isolation, meaning failures in non-critical tasks won’t disrupt the entire process. These tasks can either be retried or ignored, allowing the pipeline to continue smoothly.

View more...

How to Choose a Server Stack at Product Launch

Aggregated on: 2024-10-18 13:36:32

Choosing the perfect server stack for launching a product is a decision that carries a lot of weight. This choice influences not just the initial deployment but the long-term adaptability and efficiency of your app. If you're a senior developer or leading a team, you shoulder the responsibility of these architecture decisions, sifting through a sea of languages and frameworks to find the perfect fit for your project's unique needs. Your task here is to make an important choice, one that will hold up as your project evolves and expands. I am Grigorii Novikov, a Senior Backend Developer with years of experience in sculpting and rolling out software architectures. Throughout my career, I've been faced with plenty of critical decisions on server stack selection. Each decision has added layers to my understanding of how to align technology with the requirements of a growing project. In this article, I will share with you some of those hard-earned insights, helping you pick a server stack that will fit your project's current needs and support its future growth. I invite you to explore with me the ins and outs of making tech decisions that pave the way for success, making sure your project stands on a ground ripe for growth, flexibility, and innovation.

View more...

Three Habits of Highly Effective Observability Teams

Aggregated on: 2024-10-17 22:36:31

As organizations adopt microservices and containerized architectures, they often realize that they need to rethink their approach to basic operational tasks like security or observability. It makes sense: in a world where developers – rather than operations teams – are keeping applications up and running, and where systems are highly distributed, ephemeral, and interconnected, how can you take the same approach you have in the past? From a technology perspective, there has been a clear shift to open source standards, especially in the realm of observability. Protocols like OpenTelemetry and Prometheus, and agents like Fluent Bit, are now the norm – according to the 2023 CNCF survey, Prometheus usage increased to 57% adoption in production workloads, with OpenTelemetry and Fluent both at 32% adoption in production.  But open source tools alone can’t help organizations transform their observability practices. As I’ve had the opportunity to work with organizations who have solved the challenge of observability at scale, I’ve seen a few common trends in how these companies operate their observability practices. Let's dig in.

View more...

Should You Use AI Code Review Tools?

Aggregated on: 2024-10-17 21:36:31

Artificial intelligence (AI) is entering various industries, offering numerous advantages to fields like software coding and development. Today, many development teams have adopted AI code review tools and noticed how much faster they catch errors and improve code quality. Yet, with any new technology, there are questions about its limitations, especially with security and accuracy. Understanding AI Code Review Tools AI coding tools are software solutions that leverage artificial intelligence to analyze and improve code. Traditionally, code reviews require peers or senior developers to conduct this process manually, but it can be time-consuming and prone to human oversight. 

View more...

GitHub Copilot Security and Privacy Concerns: Understanding the Risks and Best Practices

Aggregated on: 2024-10-17 20:36:31

AI-powered code completion tools like GitHub Copilot, co-developed by GitHub and OpenAI, likely need no introduction. Developers are rapidly embracing this evolving technology to aid them in their work. Copilot and other Large Language Model (LLM) based coding assistants suggest lines of code and entire functions, saving a lot of time looking up specific formulations or helping scaffold common structures in the code. It is also great for helping a team write documentation. However, is Copilot secure? As beneficial as it may be, it also comes with significant security and privacy concerns that individual developers and organizations must be aware of. As Frank Herbert put it in "God Emperor of Dune" (the 4th book in the Dune saga):

View more...

Web GenAI Microservices Creation: An Overview

Aggregated on: 2024-10-17 19:36:31

This article will show you how to use GenAI from your browser to create and run a microservice in about a minute. Here is what you'll learn:  Provide a prompt to a cloud-based microservice appliance, and you get a system with a running database, a web app, and an API. Collaborate with stakeholders using the web app. Iterate instantly, to get the requirements right. Download the created project, and customize it in your IDE to build out the system using Python and Rules — 40x more concise than code.   All of this is open source.  No runtime or license fees. Microservices Creation: Get the Requirements Right We've all seen many projects fail due to difficulties in getting the requirements right. Let's explore that.

View more...

8 Best Practices for Automation Testing

Aggregated on: 2024-10-17 18:36:31

Automated testing has emerged as a reliable and efficient alternative to manual testing. We heard testers vouching for a less time-consuming and more accurate testing option, which would help them excel timely delivery of quality products. Automation testing is not just an automated approach to testing, it has also been recognized as a viable solution for enhancing reliability and efficiency in the software domain.

View more...

Vaadin: The Battery-Included, Server-Side AJAX Framework

Aggregated on: 2024-10-17 17:36:31

I've written a lot about Vaadin. I was so enthusiastic that I wrote the first book about it (besides the Book of Vaadin), its updated edition for Vaadin 7, and a companion website. Still, I'm amazed that so many people in the JVM world have never heard of it. In this post, I'd like to introduce Vaadin in the context of AJAX and SSR.

View more...

Containers vs. Virtual Machines: Key Differences and Use Cases

Aggregated on: 2024-10-17 13:51:31

With all this buzz around technology, there is a discussion around containers versus virtual machines (VMs). Containers and VMs are both virtualization technologies that package computing environments housing various IT components and isolate them from the underlying system. However, these tools have separate strengths and weaknesses, making them suitable for different applications.  By distinguishing between containers and VMs, you can deploy applications faster, streamline troubleshooting processes, allocate resources more efficiently, and maintain system security.

View more...

Automate Azure Databricks Unity Catalog Permissions at the Catalog Level

Aggregated on: 2024-10-17 01:51:31

Disclaimer: All the views and opinions expressed in the blog belong solely to the author and not necessarily to the author's employer or any other group or individual. This article is not a promotion for any cloud/data management platform. All the images and code snippets are publicly available on the Azure/Databricks website. What Is Unity Catalog in Databricks? Databricks Unity Catalog is a data cataloging tool that helps manage and organize data across an organization in a simple, secure way. It allows companies to keep track of all their data, making it easier to find, share, and control who can access it. Unity Catalog works across different cloud storage systems and lets teams manage permissions, governance, and data access from one place, ensuring data is used safely and efficiently. 

View more...

Enhancing Agile Software Development Through Effective Visual Content

Aggregated on: 2024-10-16 21:51:31

Agile has emerged as one of the go-to approaches for software development teams worldwide in recent years. According to Statista, it’s second only to DevOps/DevSecOps and beats other approaches like Waterfall and Lean methodology. This is not unsurprising. Organizations are increasingly looking to stay competitive, and Agile’s emphasis on collaboration, iteration, customer involvement, and delivering value early resonates with fast-paced teams.

View more...

An Interview About Navigating the Cloud-Native Ecosystem

Aggregated on: 2024-10-16 19:51:31

In this interview with Julian Fischer, CEO of the cloud computing and automation company anynines GmbH, we explore the evolving landscape of cloud-native technologies with a strong focus on the roles of Kubernetes and Cloud Foundry in modern enterprise environments. About the Interviewee The interviewee, Julian Fischer, has extensive experience in Cloud Foundry and Kubernetes ops. Julian leads anynines in helping organizations operate applications at scale. Under his guidance, they're also pioneering advancements in managing data services across many Kubernetes clusters via the open-source Klutch project.

View more...

Artificial Intelligence and Machine Learning in Cloud-Native Environments

Aggregated on: 2024-10-16 18:51:31

In our industry, few pairings have been as exciting and game-changing as the union of artificial intelligence (AI) and machine learning (ML) with cloud-native environments. It's a union designed for innovation, scalability, and yes, even cost efficiency. So put on your favorite Kubernetes hat and let's dive into this dynamic world where data science meets the cloud!  Before we explore the synergy between AI/ML and cloud-native technologies, let’s set a few definitions. 

View more...

How to Convert HTML to DOCX in Java

Aggregated on: 2024-10-16 17:51:31

There's a far smaller audience of folks who understand the intricacies of HTML document structure than those who understand the user-friendly Microsoft (MS) Word application. Automating HTML-to-DOCX conversions makes a lot of sense if we frequently need to generate well-formatted documents from dynamic web content, streamline reporting workflows, or convert any other web-based information into editable Word documents for a non-technical business audience. Automating HTML-to-DOCX conversions with APIs reduces the time and effort it takes to generate MS Word content for non-technical users. In this article, we'll review open-source and proprietary API solutions for streamlining HTML-to-DOCX conversions in Java, and we'll explore the relationship between HTML and DOCX file structures that makes this conversion relatively straightforward.

View more...

DevoxxGenie: Your AI Assistant for IntelliJ IDEA

Aggregated on: 2024-10-16 16:51:31

DevoxxGenie is a fully Java-based LLM code assistant plugin for IntelliJ IDEA, designed to integrate with local LLM providers and cloud-based LLMs. In this blog, you will learn how to get started with the plugin and get the most out of it. Enjoy! Introduction AI coding assistants are getting more and more attention. Multiple cloud services are available and IDEs provide their own services. However, with this approach, you are tied to a specific vendor and most of the time, these services are cloud based only. What should you do when your company policy does not allow you to use these cloud-based services? Or what do you do when a new, more accurate model is released? When using IntelliJ IDEA, you can make use of the DevoxxGenie plugin, created by Stephan Janssen, founder of the Devoxx conference. The plugin allows you to choose between several cloud based and local LLMs. You are not tied to a specific cloud vendor or a specific model. This is important because every few weeks a new model is released, which outperforms previous ones.

View more...

Introduction to Next.js Middleware: How It Works With Examples

Aggregated on: 2024-10-16 15:51:31

Let's talk about routing in Next.js. Today, we will talk about the one of most powerful things: middleware. Middleware in Next.js offers a powerful and flexible way both to intercept requests from the server and control request flow (redirects, URL rewriting) and globally enhance features like authentication, headers, and cookie persistence. Creating Middleware Let's create a Middleware Next.js application. First of all, we'll create a new file for middleware like middleware.js or middleware.ts, in the src folder. Middleware in Next.js then needs to allow you fine control over where it will be active (ie custom matcher configuration, or using isXXX functions)

View more...

Building an Interactive Chatbot With Streamlit, LangChain, and Bedrock

Aggregated on: 2024-10-16 14:51:31

In the ever-evolving landscape of AI, chatbots have become indispensable tools for enhancing user engagement and streamlining information delivery. This article will walk you through the process of building an interactive chatbot using Streamlit for the front end, LangChain for orchestrating interactions, and Anthropic’s Claude Model powered by Amazon Bedrock as the Large Language Model (LLM) backend. We'll dive into the code snippets for both the backend and front end and explain the key components that make this chatbot work. Core Components Streamlit frontend: Streamlit's intuitive interface allows us to create a low-code user-friendly chat interface with minimal effort. We'll explore how the code sets up the chat window, handles user input, and displays the chatbot's responses. LangChain orchestration: LangChain empowers us to manage the conversation flow and memory, ensuring the chatbot maintains context and provides relevant responses. We'll discuss how LangChain's ConversationSummaryBufferMemory and ConversationChain are integrated. Bedrock/Claude LLM backend: The true magic lies in the LLM backend. We'll look at how to leverage Amazon Bedrock’s claude foundation model to generate intelligent and contextually aware responses.  Chatbot Architecture Conceptual Walkthrough of the Architecture User interaction: The user initiates the conversation by typing a message into the chat interface created by Streamlit. This message can be a question, a request, or any other form of input the user wishes to provide. Input capture and processing: Streamlit's chat input component captures the user's message and passes it on to the LangChain framework for further processing. Contextualization with LangChain memory: LangChain plays a crucial role in maintaining the context of the conversation. It combines the user's latest input with the relevant conversation history stored in its memory. This ensures that the chatbot has the necessary information to generate a meaningful and contextually appropriate response. Leveraging the LLM: The combined context is then sent to the Bedrock/Claude LLM. This powerful language model uses its vast knowledge and understanding of language to analyze the context and generate a response that addresses the user's input in an informative way. Response retrieval: LangChain receives the generated response from the LLM and prepares it for presentation to the user. Response display: Finally, Streamlit takes the chatbot's response and displays it in the chat window, making it appear as if the chatbot is engaging in a natural conversation with the user. This creates an intuitive and user-friendly experience, encouraging further interaction. Code Snippets Frontend (Streamlit) Python   import streamlit import chatbot_backend from langchain.chains import ConversationChain from langchain.memory import ConversationSummaryBufferMemory import boto3 from langchain_aws import ChatBedrock import pandas as pd # 2 Set Title for Chatbot - streamlit.title("Hi, This is your Chatbott")   # 3 LangChain memory to the session cache - Session State - if 'memory' not in streamlit.session_state:     streamlit.session_state.memory = demo.demo_memory()   # 4 Add the UI chat history to the session cache - Session State if 'chat_history' not in streamlit.session_state:       streamlit.session_state.chat_history = []   # 5 Re-render the chat history for message in streamlit.session_state.chat_history:     with streamlit.chat_message(message["role"]):         streamlit.markdown(message["text"]) # 6 Enter the details for chatbot input box input_text = streamlit.chat_input("Powered by Bedrock")   if input_text:     with streamlit.chat_message("user"):         streamlit.markdown(input_text)     streamlit.session_state.chat_history.append({"role": "user", "text": input_text})     chat_response = demo.demo_conversation(input_text=input_text,                                            memory=streamlit.session_state.memory)       with streamlit.chat_message("assistant"):         streamlit.markdown(chat_response)     streamlit.session_state.chat_history.append({"role": "assistant", "text": chat_response})

View more...

Event-Driven vs Event-Sourced: A Common Misunderstanding

Aggregated on: 2024-10-16 13:51:31

In today’s world of software development, systems containing some sort of event constructs are increasing in popularity. While this is primarily driven by message-based communication mechanisms, events are also used in different scopes and contexts. The frequent use of the term “event” leads to confusion, which is often observed in discussions about various software architectures among people who are new to these concepts. The terms “event-driven” and “event-sourced” are often used interchangeably, while in reality, the two are very different concepts. In this article, we are going to explore the key characteristics of each, explain how they differ, and how they complement each other. We will focus on clarifying the key differences, not a deep dive into each concept. Before we dive in, let’s clarify the definition of an “event” in both event-driven and event-sourced systems. An event is an immutable record describing something that has happened in the past. Therefore, the data that an event contains cannot be changed. Immutability and description of the past are fundamental characteristics of events.

View more...

Mastering Date-Time APIs: Challenges With Java's Calendar and JDK Date/Time APIs

Aggregated on: 2024-10-15 23:36:30

In this article, we'll address four problems covering different date-time topics. These problems are mainly focused on the Calendar API and on the JDK Date/Time API.  Disclaimer: This article is an abstract from my recent book Java Coding Problems, Second Edition.

View more...

Acting Like We Care About Security

Aggregated on: 2024-10-15 22:36:30

This will be my last entry on the topic for a while. For context, I introduced the idea that folks don’t care about security, they care about outcomes in this post; and then I began exploring ways we, as IT practitioners, can shift the focus to the results and therefore contextualize the actions needed as something other than “security for the sake of security.” In this post, I’m continuing with that line of discussion. What can we DO to make our environments more secure, and how can we get our colleagues to understand and want to do it? Focus on Actual Risks and Realistic Outcomes (or: Don’t let “perfect” be the enemy of “good”)

View more...

How to Simplify Complex Conditions With Python's Match Statement

Aggregated on: 2024-10-15 21:36:30

Pattern matching is a programming technique that involves comparing a value against a pattern and extracting information from the value if it matches the pattern. Instead of writing lengthy code, conditional checks, pattern matching enables a concise and readable way to identify the value matching the pattern. While pattern matching is rooted in functional programming, it can be used both functional and non-functional styles. Benefits of pattern matching include:

View more...

AI Strategies for Enhanced Language Model Performance

Aggregated on: 2024-10-15 20:36:30

Artificial Intelligence (AI) and language models are transforming various fields, including natural language processing, automated customer support, and data analysis. A critical challenge that these models face is the ability to perform compositional reasoning — an essential skill for understanding and combining different pieces of information to solve complex problems. This article explores the concept of compositionality, the challenges associated with it, and advanced strategies to improve language models' ability to reason compositionally. Understanding Compositionality in AI Compositionality refers to the ability of AI models to combine simple concepts to form complex ideas or solutions. For instance, answering a question like "Who was the U.S. President when the Eiffel Tower was completed?" requires understanding separate facts and combining them to arrive at the answer. While language models have made significant progress in understanding individual facts, they often struggle with tasks that require them to combine these facts in a coherent manner.

View more...

Domain-Driven Design: Manage Data With Jakarta Data and JNoSQL

Aggregated on: 2024-10-15 19:36:30

Managing data access in Domain-Driven Design (DDD) applications can be challenging, especially when working with different database types, like relational and NoSQL. This article explores how leveraging tools like JNoSQL and Jakarta Data helps simplify data access, making it easier to implement domain-focused repositories, integrate ubiquitous language, and naturally align business semantics with your code. Understanding DDD vs. DAO Before diving into the practical implementation details, it's essential to clarify the distinction between Domain-Driven Design (DDD) and the Data Access Object (DAO) pattern. Understanding this difference will help recognize the value of domain-focused repositories in DDD applications.

View more...

Data at Rest Encryption: Protecting Stored Data

Aggregated on: 2024-10-15 18:36:30

Securing sensitive information is more critical than ever. One of the key defenses in data protection is data at rest encryption, a method that safeguards information stored on devices such as hard drives, databases, and servers. Unlike data in transit, which is actively moving through networks, data at rest is idle, yet just as vulnerable to breaches. From personal devices to enterprise storage systems, encryption ensures that even if unauthorized access occurs, the data remains unreadable without the appropriate decryption keys.  An alarming 53% of companies left more than 1,000 sensitive files and folders unencrypted, accessible to all employees. This article explores the various methods of encrypting data at rest, helping you understand the strengths and limitations of each approach to better protect your stored information.

View more...

Oracle CloudWorld 2024: Key Takeaways for Developers, Engineers and Architects

Aggregated on: 2024-10-15 16:51:30

Oracle CloudWorld 2024 showcased a range of innovations and strategic shifts that will significantly impact the work of developers, engineers, and architects across industries. From AI integrations to multi-cloud strategies, Oracle is positioning itself as a key enabler of digital transformation. Here are the most important takeaways for technical professionals: 1. AI Integration Across the Stack Artificial intelligence was undoubtedly the star of CloudWorld 2024, with Oracle emphasizing its integration throughout its product suite. For developers and engineers, this means having access to powerful AI capabilities without building them from scratch.

View more...

Vector Search: The Hottest Topic in Information Retrieval

Aggregated on: 2024-10-15 15:51:30

My name is Bohdan Snisar. With 13 years in the software industry, I’ve transitioned from a software engineer to a software architect, gaining a deep understanding of the software development lifecycle and honing my problem-solving skills. My expertise spans Java, Go, Big Data pipelines, vector-based search, machine learning, relational databases, and distributed systems, with significant contributions at companies like Revolut and Wix. At Revolut, I played a pivotal role in developing infrastructure for Bloomberg integration, creating a transparent and traceable interface for trading terminals that became a vital data source. This experience highlighted the growing need for advanced data handling and retrieval techniques, leading me to explore the potential of vector search.

View more...

VACUUM In Postgres Demystified

Aggregated on: 2024-10-15 14:51:30

Let’s see what is VACUUM in PostgreSQL, how it’s useful, and how to improve your database performance. Storage Basics Before diving into vacuuming, it's important to first understand the fundamentals of data storage in PostgreSQL. While we’ll explain how data is represented internally, we won’t cover every aspect of storage, such as shared memory or buffer pools.

View more...

Transforming Customer Feedback With Automation of Summaries and Labels Using TAG and RAG

Aggregated on: 2024-10-15 13:51:30

In today’s data-driven landscape, businesses encounter a vast influx of customer feedback through reviews, surveys, and social media interactions. While this information can yield invaluable insights, it also presents a significant challenge: how to distill meaningful data from an overwhelming amount of information. Advanced analytics techniques are revolutionizing our approach to understanding customer sentiment. Among the most innovative are Table-Augmented Generation (TAG) and Retrieval-Augmented Generation (RAG), which enable businesses to derive complex insights from thousands of reviews simultaneously using natural language processing (NLP). This article delves into the workings of TAG and RAG, their implications for data labeling and Text-to-SQL generation, and their practical applications in real-world scenarios. By providing concrete examples, we illustrate how these technologies can enhance data analysis and facilitate informed decision-making, catering to both seasoned data scientists and newcomers to the field.

View more...

Writing Great Code: The Five Principles of Clean Code

Aggregated on: 2024-10-14 23:51:30

One of the finest ways to make the code easy to read, maintain, and improve can be done by writing clean code. Clean code helps to reduce errors, improves the code quality of the project, and makes other developers and future teams understand and work with the code. The well-organized code reduces mistakes and maintenance a lot easier. 1. Use Meaningful Names Clean code should have meaningful names that describe the purpose of variables, functions, and classes. The name itself should convey what the code does. So, anyone who is reading it can understand its purpose without referring to any additional documentation.

View more...

The Battle of Data: Statistics vs Machine Learning

Aggregated on: 2024-10-14 22:51:30

The goal of the paper is to investigate the fields of statistics and machine learning and look at the differences, similarities, usage, and ways of analyzing data in these two branches. Both branches of science allow interpreting data, however, they are based on different pillars: statistics on mathematics and the other on computer science – the focus of machine learning. Introduction Artificial intelligence together with machine learning is presently the technologically advanced means of extracting useful information from the raw data that is changing every day around us. On the contrary, statistics — a very old field of research of over 3 centuries — has always been regarded as a core discipline for the interpretation of the collected data and decision-making. Even though both of them share one goal of studying data, how the goal is achieved and where the focus is varies in statistics and machine learning.

View more...

Amazon Redshift Workload Management (WLM): A Step-by-Step Guide

Aggregated on: 2024-10-14 21:51:30

As a database administrator or data engineer working with Amazon Redshift, it's crucial to manage resources effectively to handle different workloads. Amazon Redshift's Workload Management (WLM) feature lets you define how queries are prioritized and how resources like CPU and memory are allocated. This guide will walk you through setting up WLM step by step, making it easy for newbies to get started. What Is Workload Management (WLM)? WLM allows Amazon Redshift to handle multiple concurrent queries by allocating resources to query queues. You can create custom queues, allocate memory, and set concurrency limits for specific workloads, ensuring that critical queries run efficiently even under heavy loads.

View more...

Hello, K.AI: How I Trained a Chatbot of Myself Without Coding

Aggregated on: 2024-10-14 20:51:30

Generative AI (GenAI) enables many new use cases for enterprises and private citizens. While I work on real-time enterprise-scale AI/ML deployments with data streaming, big data analytics, and cloud-native software applications in my daily business life, I also wanted to train a conversational chatbot for myself. This blog post introduces my journey without coding to train K.AI, a personal chatbot that can be used to learn in a conversational pace format about data streaming and the most successful use cases in this area. Yes, this is also based on my expertise, domain knowledge, and opinion, which is available as public internet data, like my hundreds of blog articles, LinkedIn shares, and YouTube videos. Hi, K.AI: Let's Chat The evolution of Generative AI (GenAI) around OpenAI's chatbot ChatGPT and many similar large language models (LLM), open source tools like LangChain and SaaS solutions for building a conversational AI led me to the idea of building a chatbot trained with all the content I created over the past years.

View more...

Decoding DORA: EU's Unified Approach to ICT Risk Governance

Aggregated on: 2024-10-14 19:51:29

As financial services become increasingly digitized, the need for robust operational resilience has grown more critical. The Digital Operational Resilience Act (DORA), set to take effect on January 17, 2025, aims to establish a unified framework for Information and Communication Technology (ICT) risk management across the European Union's financial sector. This new regulation will significantly impact how banks, insurers, and other financial entities approach their digital risks. DORA represents an important step in regulatory evolution, designed to address the growing complexities of the digital financial landscape. But what does this mean for financial institutions? And how can organizations prepare for this shift in regulatory expectations?

View more...

How to Set up OAuth JWT Flow and mTLS in the Salesforce Connector for a MuleSoft App

Aggregated on: 2024-10-14 18:51:29

In the first part of this series, we set up a Mule app and a Salesforce Connected app for the OAuth JWT bearer token flow. In this second part, we’ll go through the required steps to set up mutual TLS between the Mule app and the Salesforce Connected App we created in that first post. Create a New Profile in Salesforce for mTLS If the Profile you used in Part 1 of this guide (linked earlier) is the definitive one that you’ll use for this Mule app, skip this step. Go to Setup > Profiles. Click on New Profile.

View more...