News AggregatorAndroid App Modularization: 4 Useful Tips to StartAggregated on: Mon Aug 21 2023 14:31:31 GMT+0000 (Coordinated Universal Time) Android app modularization refers to the process of breaking down an Android app into smaller, independent modules. These modules can be thought of as building blocks that can be combined to form the complete app. Each module is typically responsible for a specific feature or functionality of the app and can be developed, tested, and deployed independently. Modularizing an app can provide several benefits, including easier maintenance, faster development cycles, improved scalability, and enhanced performance. View more...Introduction to List Data StructuresAggregated on: Mon Aug 21 2023 14:01:31 GMT+0000 (Coordinated Universal Time) The list data structure is one of the fundamental concepts in computer science and programming. A list is a collection of items that are stored sequentially in memory. It is a dynamic data structure that can grow or shrink in size during runtime. Lists are used in many different applications, including databases, web development, and scientific computing. This article will explore the list data structure in detail, its properties, operations, and different types of lists. Properties of a List A list has the following properties: View more...8 Ways to Improve Application PerformanceAggregated on: Sun Aug 20 2023 17:16:31 GMT+0000 (Coordinated Universal Time) Application performance is critical for delivering a fast and responsive user experience. Slow performance, or high latency, can lead to frustrated users and lost revenue for the organization. From a high level, application latency refers to the delay between the user's request and the application's response. Latency can not only impact the overall user experience and decrease engagement, but it can be a costly and complicated problem as well. App performance also impacts overall efficiency. Slow applications can slow down business processes, leading to decreased productivity and increased costs. All of these factors can reduce a company’s ability to compete in the market. In today’s world, customers expect fast and responsive applications. Businesses that are unable to deliver on this expectation risk losing customers to competitors who offer a better user experience. View more...What Is GitOps?Aggregated on: Sun Aug 20 2023 17:01:31 GMT+0000 (Coordinated Universal Time) GitOps is a relatively new addition to the growing list of "Ops" paradigms taking shape in our industry. It all started with DevOps, and while the term DevOps has been around for some years now, it seems we still can't agree whether it's a process, mindset, job title, set of tools, or some combination of them all. We captured our thoughts about DevOps in our introduction to DevOps post, and we dive even deeper in our DevOps engineer's handbook. The term GitOps suffers from the same ambiguity, so in this post we look at: View more...6 Proven Strategies for Being a Great Platform EngineerAggregated on: Sun Aug 20 2023 16:46:31 GMT+0000 (Coordinated Universal Time) “The future is still so much bigger than the past.”- Tim Berners-Lee, Inventor of the World Wide Web For platform engineers, the future is bright. Commonly thought of as the next stage beyond DevOps, platform engineers are one of the most in-demand and well-regarded positions in tech. While there is a huge upside to being on the cutting edge of an industry, there is one major, potential drawback: A lack of tried and true wisdom you can apply to the role. View more...How to Create Customer Resource Definitions in KubernetesAggregated on: Sat Aug 19 2023 17:31:30 GMT+0000 (Coordinated Universal Time) Kubernetes is a popular open-source platform used for automating the deployment, scaling, and management of containerized applications. It provides a powerful API for managing resources, but sometimes its built-in resources are not sufficient for your use case. That's where Kubernetes Custom Resource Definitions (CRDs) come in. CRDs allow you to define your own custom resources, which can be managed in the same way as built-in resources like pods and services. In this tutorial, we'll go through the steps to implement a Kubernetes CRD. View more...Why the Manufacturing Sector Needs Edge ComputingAggregated on: Sat Aug 19 2023 17:16:30 GMT+0000 (Coordinated Universal Time) Manufacturing is in the middle of a technological revolution. The data-driven fourth industrial revolution, Industry 4.0, is in full effect, and as manufacturers embrace this change, their needs are shifting. The longer this trend continues, the more it becomes clear that the sector needs edge computing. The manufacturing industry is already a leader in cloud adoption, but the cracks in the conventional cloud are starting to show. Production facilities need to take things further by embracing the edge, and there are five primary reasons why. View more...Navigating the PAM Landscape: Overcoming Deployment Barriers for Modern SecurityAggregated on: Sat Aug 19 2023 16:46:30 GMT+0000 (Coordinated Universal Time) Privileged access management (PAM) is critical for securing sensitive systems and data, especially with remote work's expanded attack surface. However, recent research by Keeper Security reveals significant barriers still inhibit broad PAM adoption. Cost and complexity top the list of challenges. A survey of 400 IT and security leaders found 58% have not deployed PAM because it was too expensive. And 56% attempted PAM deployment but failed to fully implement due to excessive complexity. This indicates an appetite for robust PAM, but solutions remain out of reach for many. View more...Demystifying Kuma Service MeshAggregated on: Fri Aug 18 2023 21:31:29 GMT+0000 (Coordinated Universal Time) Service mesh emerged as a response to the growing popularity of cloud-native environments, microservices architecture, and Kubernetes. It has its roots in the three-tiered model of application architecture. While Kubernetes helped resolve deployment challenges, the communication between microservices remained a source of unreliability. Under a heavy load, the application could break if the traffic routing, load balancing, etc., were not optimized. This led to the growth of service mesh. With the existing service mesh hard to scale due to too many moving parts, configure and manage, Kong built a service mesh tool called Kuma. In this blog post, we will discuss the open-source service mesh Kuma, its architecture, and its easy-to-implement policies like traffic control, metrics, circuit breaking, etc. We will also discuss how Kuma provides better observability of services. View more...Best Plugins For JetBrains IDEsAggregated on: Fri Aug 18 2023 21:16:30 GMT+0000 (Coordinated Universal Time) JetBrains IDEs based on the IntelliJ platform are probably one of the most common IDEs in existence nowadays. Their popularity is especially visible within the JVM languages community, where IntelliJ IDEA remains the right-away IDE pick for most developers. All of this is despite some new competitors showing up and old competitors overcoming their previous shortcomings and joining back the table. In this text, I would like to describe the plugins for IntelliJ IDEA that may be a great help for you in your daily fight with your tasks, and that will make your work easier. Some plugins will be language agonistic, while others can be language dependent. View more...Content Moderation to Zero Shot ClassificationAggregated on: Fri Aug 18 2023 21:16:29 GMT+0000 (Coordinated Universal Time) What if we wanted to analyze a small piece of text with no additional information or context and be able to get the most reasonable label that we wish to define for our own data? This can feed the more deterministic policy engines and rule engines, and even be a part of a larger context-driven analysis as required. OpenAI does provide a means to "content moderate" with preset classifications that can determine if your text belongs to one or more of the more vile categories. However, this analysis is more about how we can get more custom to defining our own labels against a given sentence or phrase. We will look at 4 categories: viz. politics, PHI/PII, legal matters, and company performance. Given that we don't have the option of gathering probability scores from Open AI on such custom labels (at this point in time), we will try the more user-oriented prompt engineering route in Option 1 while Option 2 evaluates other pre-trained models from Hugging Face for the same. View more...Combatting the OpenSSH VulnerabilityAggregated on: Fri Aug 18 2023 21:01:29 GMT+0000 (Coordinated Universal Time) Time and again, we encounter stark reminders that every piece of software, no matter how widespread its use or how thoroughly it is reviewed, has the potential to harbor security vulnerabilities. A recent case in point is a security flaw that was detected in OpenSSH, a tool commonly employed for secure connectivity. This occurrence underlines the necessity of maintaining vigilance regarding all software, including those with the primary function of enhancing security.The detected vulnerability in OpenSSH, designated CVE-2023-38408, opens the possibility of a remote execution attack under certain conditions. A remote command execution vulnerability represents a type of security flaw within computer systems, applications, or network devices that allows an attacker to execute arbitrary commands remotely on the target system. Once this breach has been exploited, the attacker can utilize the remote execution to mount further attacks, given that the remote host often possesses additional permissions within an organization's network. As discovered through a code review, this vulnerability can be mitigated by updating OpenSSH to version 9.3p2. View more...Four Practical Ways To Make Your Software More SecureAggregated on: Fri Aug 18 2023 21:01:29 GMT+0000 (Coordinated Universal Time) Our ever-increasing reliance on technology has made software security more crucial than ever. Business owners and individuals use software every day, and that isn’t changing any time soon. Developers are responsible for creating software that can stand up against a wide range of attacks from countless potential sources. View more...Data Streaming From Smart Factory to CloudAggregated on: Fri Aug 18 2023 20:01:29 GMT+0000 (Coordinated Universal Time) A smart factory organizes itself without human intervention to produce the desired products. Data integration of IoT protocols, data correlation with other standard software like MES or ERP, and sharing data with independent business units for reporting or analytics is crucial for generating business value and improving the OEE. This blog post explores how data streaming powered by Apache Kafka helps connect and move data to the cloud at scale in real time, including a case study from BMW and a simple lightboard video about the related enterprise architecture. The State of Data Streaming for Manufacturing in 2023 The evolution of industrial IoT, manufacturing 4.0, and digitalized B2B and customer relations require modern, open, and scalable information sharing. Data streaming allows integrating and correlating data in real time at any scale. Trends like software-defined manufacturing and data streaming help modernize and innovate the entire engineering and sales lifecycle. View more...API ManagementAggregated on: Fri Aug 18 2023 19:31:29 GMT+0000 (Coordinated Universal Time) In the ever-evolving landscape of modern software development, Application Programming Interfaces (APIs) have emerged as crucial building blocks that enable seamless communication between different software systems, applications, and services. APIs act as intermediaries, allowing developers to access the functionality and data of existing software components, making it easier to build new applications and integrate various services into a unified ecosystem. An API, short for Application Programming Interface, is a set of rules and protocols that allows different software applications to communicate and interact with each other. It defines the methods and data formats that applications can use to request and exchange information, enabling them to access specific functionalities and services without knowing the intricate details of how those services are implemented. View more...Seeing the Forest for the Trees: Data Preservation Starts With a Keen EyeAggregated on: Fri Aug 18 2023 13:46:29 GMT+0000 (Coordinated Universal Time) Everywhere you turn, data security is a major challenge for several organizations. This makes it difficult to ensure that data is reliable and accurate for use. This is why organizations must now take data preservation more seriously than they ever have, especially when you consider what cybercriminals have in store. Effective data preservation starts with a keen eye: achieving holistic visibility. Organizations of all sizes and industries have come to rely heavily on the seamless flow of information, making data protection an essential pillar in maintaining integrity, competitiveness, and resilience. View more...The Rising Risks and Opportunities in API SecurityAggregated on: Fri Aug 18 2023 13:31:29 GMT+0000 (Coordinated Universal Time) APIs are the digital fabric connecting companies, partners, and customers. But increased reliance on APIs also introduces new security risks. I recently spoke with Michelle McLean, VP of Marketing at API security provider Salt Security during Black Hat 2023 about the current challenges and future outlook for API security. McLean says API awareness has grown due to high-profile breaches like the Optus leak in Australia. Such incidents underscore that APIs are an easy yet lucrative target. Attackers increasingly focus on APIs to steal valuable data, carry out fraud, and more. View more...Edge Data Platforms, Real-Time Services, and Modern Data TrendsAggregated on: Fri Aug 18 2023 13:01:29 GMT+0000 (Coordinated Universal Time) We all know that data is being generated at an unprecedented rate. You may also know that this has led to an increase in the demand for efficient and secure data storage solutions that won’t break the bank. Edge data platforms and real-time services are two solutions focused on solving the challenges of modern data management, and they are quickly gaining popularity among businesses. This article will explore what edge data platforms and real-time services are, why they are important, and how they can be used. What Are Edge Data Platforms? Edge data platforms are software solutions that enable businesses to collect, process, and analyze data at the edge of the network. These platforms offer several advantages over traditional cloud computing. By processing data at the edge of the network, latency can be minimized, which means that data can be processed and analyzed faster. This is especially important for applications that require real-time responses, such as autonomous vehicles, industrial IoT applications, or streaming media. View more...Things to Consider When Scaling Analytics for High QPSAggregated on: Fri Aug 18 2023 03:31:29 GMT+0000 (Coordinated Universal Time) For some, the thought of analytics and high QPS (queries per second) together may seem unlikely. After all, we typically think of analytics as the occasional report and dashboard into business metrics. But, analytics use cases are evolving with high volume, low latency queries on the rise. Companies like Confluent, Target, and Pinterest use analytics for much more than weekly executive summaries. They’re making analytics available across their organizations; their teams are exploring high-dimensional raw data in a free-flowing, ad-hoc nature; and they’re powering analytics applications and data products for 1000s to millions of external users and customers. View more...IoT in the Cloud: 8 Key Benefits and How to Get StartedAggregated on: Fri Aug 18 2023 03:16:29 GMT+0000 (Coordinated Universal Time) What Is IoT in the Cloud? The Internet of Things, or IoT, refers to the network of physical devices, vehicles, appliances, and other items embedded with sensors, software, and network connectivity, which enables these objects to connect and exchange data. IoT in the cloud means storing and processing the massive amounts of data generated by these interconnected devices in the cloud, rather than on local servers or in traditional data centers. Here are some of the key functions of cloud-based IoT platforms: View more...Function Calling: Integrate Your GPT Chatbot With AnythingAggregated on: Fri Aug 18 2023 03:01:29 GMT+0000 (Coordinated Universal Time) Imagine creating an AI assistant to which you can say something like, "Book me the earliest reservation for the nearest Thai restaurant and update my calendar." Language models continue to push boundaries and evolve. OpenAI, the company behind ChatGPT, recently introduced a powerful new feature called function calling in their GPT models. Function calling simplifies the creation of chatbots that communicate with external tools and APIs, opening up a new realm of possibilities for AI-powered applications. In this article, we will delve into the concept of function calling, its implications, and its transformative impact on how we interact with AI systems by creating NewsGPT, a chatbot that brings you breaking news worldwide. View more...Building Pop-Up Compose Notifications in Android Using Kotlin and ComposeAggregated on: Fri Aug 18 2023 02:01:29 GMT+0000 (Coordinated Universal Time) Compose is a modern UI toolkit for building native Android apps with ease. Since its introduction, Compose has revolutionized the way we create user interfaces by offering a declarative and composable approach. This powerful toolkit empowers developers to design dynamic, interactive, and visually appealing UIs with less boilerplate code. In this article, we will explore how to implement pop-up Compose notifications in an Android app using Kotlin and Compose. Pop-up notifications are a great way to deliver timely information to users and prompt them to take specific actions within the app. By leveraging Compose's capabilities, we can create attention-grabbing notifications that seamlessly blend with our app's overall design. View more...Weighing the Trade-Offs of Native vs. Cross-Platform Mobile App DevelopmentAggregated on: Fri Aug 18 2023 00:46:29 GMT+0000 (Coordinated Universal Time) Mobile applications have become a crucial channel for delivering software solutions to users. However, it is vital to recognize that mobile apps are a part of the broader software development ecosystem. Applying the same engineering discipline and design rigor as any other serious software project is imperative to ensure success. This means carefully weighing the technology and the architectural advantages and disadvantages underpinning the solution. From an engineering standpoint, there are several options for building mobile applications, each with strengths and weaknesses. Careful consideration is required to ensure optimal selection for your project goals. Native and cross-platform app development approaches have unique characteristics and trade-offs when making informed decisions to build maintainable and scalable apps aligned with project goals. View more...JWT Token Authentication in Angular 14 and .NET Core 6 Web APIAggregated on: Fri Aug 18 2023 00:16:29 GMT+0000 (Coordinated Universal Time) In this article, we will discuss JWT Authentication in Angular 14 step-by-step. If you want to learn the basics and details of the JWT Token, then check out this article. View more...NULL in OracleAggregated on: Thu Aug 17 2023 23:16:29 GMT+0000 (Coordinated Universal Time) Key Points The special value NULL means no data, a statement of the fact that the value is unknown. By default, columns, and variables of any type can take this value unless they have a NOT NULL constraint. Also, the DBMS automatically adds a NOT NULL constraint to columns included in the table's primary key. The main feature of NULL is that it is not equal to anything, not even another NULL. You cannot compare any value with it using any operators: =, <, >, like ... Even the expression NULL != NULL will not be true because one cannot uniquely compare one unknown with another. By the way, this expression will not be false either because when calculating the conditions, Oracle is not limited to the TRUE and FALSE states. Due to the presence of an element of uncertainty in the form of NULL, there is one more state — UNKNOWN. View more...ETL vs. ELTAggregated on: Thu Aug 17 2023 21:01:29 GMT+0000 (Coordinated Universal Time) At first glance, it may be difficult to discern the differences between ETL and ELT. While similar in appearance, the acronyms refer to different approaches to moving and processing data, revealing the evolution and growth of data over the years. ETL and ELT are processes used by data integration tools. Through each process, data is pulled from different sources and transformed into useful information. View more...APIs in Motion: Keep Your APIs Up-To-DateAggregated on: Thu Aug 17 2023 20:46:29 GMT+0000 (Coordinated Universal Time) In the rapidly evolving world of technology, software applications have become the backbone of modern society. From mobile apps that streamline our daily tasks to web-based platforms that connect us globally, these applications rely on seamless communication and data exchange. This is where Application Programming Interfaces (APIs) come into play. Exploring the Reasons Behind Updating and Evolving APIs Over Time APIs have become the backbone of modern software development, revolutionizing the way applications are designed, built, and integrated. Their importance stems from their ability to facilitate communication and data exchange between diverse applications and services. At its core, an API, or Application Programming Interface, is a set of rules, protocols, and tools that allows different software applications to interact and communicate with each other. APIs act as bridges, enabling one application to access and use the services and functionalities provided by another application or platform. This interoperability allows developers to combine the strengths of various applications and create powerful integrated solutions. View more...Reactive Event Streaming Architecture With Kafka, Redis Streams, Spring Boot, and HTTP Server-Sent Events (SSE)Aggregated on: Thu Aug 17 2023 20:01:29 GMT+0000 (Coordinated Universal Time) This article outlines a solution for streaming events from Kafka, forwarding them to Redis using its Stream API, and reading individual streams from Redis via its streaming API. The added complexity in this scenario is the need to stream events from an HTTP endpoint using Server-Sent Events (SSE) while ensuring that only events relevant to a specific client ID are processed and sent. Problem Statement Many companies have an existing Kafka infrastructure where events are being produced. Our goal is to set up a system that subscribes to Kafka messages but only processes events relevant to a specific client ID. These filtered events should be forwarded to Redis using its Stream API. Additionally, we need to establish an HTTP endpoint for Server-Sent Events (SSE) that allows the specified client to receive real-time event updates. View more...Best Practices for Writing Clean Java CodeAggregated on: Thu Aug 17 2023 19:46:29 GMT+0000 (Coordinated Universal Time) Having spent a few years in the technology industry, mostly developing software, I’ve been accustomed to the reality that most of my time is spent working with different teams and reviewing code written by other software developers. Over the years, I’ve had diverse experiences working with code written by different developers. These experiences have fundamentally reinforced my appreciation for clean code. “Indeed, the ratio of time spent reading versus writing is well over 10 to 1. We are constantly reading old code as part of the effort to write new code. …[Therefore,] making it easy to read makes it easier to write.”- from Clean Code: A Handbook of Agile Software Craftsmanship (Uncle Bob) View more...Ops-Friendly Apache APISIXAggregated on: Thu Aug 17 2023 19:46:29 GMT+0000 (Coordinated Universal Time) Though I always worked on the Dev side of IT, I was also interested in the Ops side. I even had a short experience being a WebSphere admin: I used it several times, helping Ops deal with the Admin console while being a developer. Providing a single package that Ops can configure and deploy in different environments is very important. As a JVM developer, I've been happy using Spring Boot and its wealth of configuration options: command-line parameters, JVM parameters, files, profiles, environment variables, etc. View more...Building and Sustaining an Open Source Community in the Context of OrganizationsAggregated on: Thu Aug 17 2023 19:01:29 GMT+0000 (Coordinated Universal Time) At a time when collaboration and innovation are critical for an organization, an open-source development model is becoming ever more prominent. In this article, we delve into the world of open source and explore how it could revolutionize creative collaboration and push the boundaries of inclusive innovation within an organization and around the world. Open-source communities have laid the foundation for some of the biggest technological leaps we have seen in numerous domains, especially in software. Some examples include Linux OS, Android OS, Kuberates, Gradle, and Apache HTTP server. Typically, these projects are hidden from the visibility of end users but provide immense value to software development and enhance the productivity of developers, which has led to continuous innovation in the services we rely on today. Open source is not limited to technology, however. Wikipedia is a prominent example of an open-source artifact serving as a modern-day encyclopedia. View more...Control Access To Private Data Using Azure Storage Shared Access SignaturesAggregated on: Thu Aug 17 2023 18:46:29 GMT+0000 (Coordinated Universal Time) Security and governance are two major blockers that either stop or delay the cloud journey of various customers. In this era of the digital world, almost everyone has shown their concerns about the security of their data. Some are concerned due to the nature of data like PII data, and some are concerned due to local compliance laws like GDPR in Europe. Business Problem While I was working on a review assignment, I found that the application was using the Azure Storage Shared access signature for distributing access to private data. Even the developer of the application was using the SAS token as best practice, but it was still having below challenges. View more...Introduction to the Stack Data StructureAggregated on: Thu Aug 17 2023 17:46:29 GMT+0000 (Coordinated Universal Time) Data structures are essential tools in computer science and programming. They allow for the efficient storage and manipulation of data, which is crucial in developing software applications. One of the most widely used data structures is the stack, which is an abstract data type that operates in a last-in, first-out (LIFO) manner. In this article, we will take a detailed look at the stack data structure, including its definition, operations, implementation, and applications. Definition of a Stack A stack is a collection of elements where only two main operations are allowed: pushing an element onto the top of the stack and popping an element off the top of the stack. The elements in a stack are usually of the same type, and they are stored in a linear data structure, which can be implemented using an array or a linked list. View more...How To Level Up in Your Data Engineering RoleAggregated on: Thu Aug 17 2023 16:01:29 GMT+0000 (Coordinated Universal Time) Data engineering is one of the fastest-growing jobs in tech. And that isn’t surprising given the value — and sheer amount — of data that companies are capturing today. IDC forecasts that by the end of 2025, more than 175 zettabytes of data will be created, captured, and consumed – up from 33 zettabytes in 2018. Many companies have access to vast, growing amounts of data sitting in warehouses or customer data platforms (CDPs) but still don’t truly understand the potential value of their data. Companies can’t afford to lose these critical insights when it comes to making informed business decisions. Enter Data engineers. Landing a role in data engineering isn’t just about technical acumen. Of course, technical skills are a critical piece of the role, but to become a great data engineer, you need to understand the bigger picture of what problem you are trying to solve. Here’s how to get the role — and grow in your data engineering career. Learn the Language of Data Data engineers design, manage, and optimize the flow of data within an organization’s databases and develop data pipelines for analytics. But if you zoom out, data engineers are more than data shepherds. They are enablers in the organization, giving self-serve data access to the rest of the company. They can derive a single source of truth from complex, evolving datasets, working with data science and line of business teams such as marketing and product functions to help promote data-driven decision-making within an organization. Essentially, data engineers act as the translator of data to non-technical teams. View more...The Enterprise Browser: A Security-Hardened Productivity Platform for the Future of Remote WorkAggregated on: Thu Aug 17 2023 14:16:29 GMT+0000 (Coordinated Universal Time) A recent interview with Island’s founding team member Brian Kenyon at Black Hat 2023 sheds light on how the enterprise browser is poised to become a powerful platform for secure remote work. Island offers a version of the Chromium open-source browser customized for the needs of enterprises. According to Kenyon, the enterprise browser holds enormous promise as the interface through which companies distribute software, apply access controls, generate usage analytics, and enable productivity. Kenyon explains that browsers entered the workplace mainly as a portal for personal tasks like online shopping between meetings. Enterprises tried to limit liability by restricting certain sites but otherwise did little to manage browser usage. However, browsers now access critical cloud applications and sensitive corporate data. Despite this shift, employees still use the same consumer products like Chrome and Safari. View more...Java String: A Complete Guide With ExamplesAggregated on: Thu Aug 17 2023 14:01:29 GMT+0000 (Coordinated Universal Time) In Java, the String class is one of the most fundamental and widely used classes. It represents a sequence of characters and serves as the backbone of text manipulation in Java programs. Strings are immutable, meaning their values cannot be changed once they are created. In this blog, we'll explore the Java String class and its important methods and provide examples to illustrate its usage. Creating Strings In Java, you can create a String object using either a string literal or the new keyword. The string literal is enclosed in double quotes, while using new explicitly creates a new String object. Here are examples of both approaches: View more...Improving Customer-Facing App Quality Using Tricentis TestimAggregated on: Thu Aug 17 2023 13:16:29 GMT+0000 (Coordinated Universal Time) As a software engineer, I’ve been reminded that “change” is the only “constant” we experience. Honestly, that premise is why I am just as excited today as I was when I started my career in 1992. I’ve realized there are some “almost-constants” that exist in an industry driven by change. In this post, I will talk about the continued mindset toward allowing less-than-ideal test coverage for features before they are released. View more...Defensive Programming With Klojang CheckAggregated on: Thu Aug 17 2023 04:31:28 GMT+0000 (Coordinated Universal Time) Unit testing and integration testing have long since become established practices. Practically all Java programmers know how to write unit tests with JUnit. IDEs will help you with it and build tools like Maven and Gradle and run them as a matter of course. The same cannot be said of its (sort of) runtime counterpart: Defensive Programming — ensuring your program or method starts with a clean and workable set of inputs before continuing with the business logic. Null checks are the most common example of this. Yet it often seems like everything beyond that is treated as part of the business logic, even when it arguably isn't. If a method that calculates a price needs some value from a configuration file, is the presence of the configuration file part of the business logic? Probably not, but it should be checked nonetheless. View more...End-To-End Automated Testing of a Home Robot Using April TagsAggregated on: Thu Aug 17 2023 04:16:29 GMT+0000 (Coordinated Universal Time) In my previous article, I gave an overview of robotics software design, and what are the different approaches to testing we could do, and how we can approach testing at different layers. In this article, I will explain how to perform E2E automated testing for a home robot. Challenges in End-To-End Automation Challenges in robotic automation are plenty. The complexity of the software stack itself makes this type of automation super challenging. Testing could be done at any different layer, starting from the front end all the way to the low layer. End-to-end becomes difficult as it introduces a newer challenge with respect to the 3D space. Testing within a 3D space involving real home features is challenging too. Top of all, there are no specific tools and technology available to automate the testing process. This is a space that requires an immense understanding of the problem and great expertise in solving this challenge. Don't worry. I will share my experience here to help you understand and provide an overview of how things could be done. View more...The Power of Caching: Boosting API Performance and ScalabilityAggregated on: Thu Aug 17 2023 03:46:28 GMT+0000 (Coordinated Universal Time) Caching is the process of storing frequently accessed data or resources in a temporary storage location, such as memory or disk, to improve retrieval speed and reduce the need for repetitive processing. Benefits of Caching Improved performance: Caching eliminates the need to retrieve data from the original source every time, resulting in faster response times and reduced latency. Reduced server load: By serving cached content, the load on the server is reduced, allowing it to handle more requests and improving overall scalability. Bandwidth optimization: Caching reduces the amount of data transferred over the network, minimizing bandwidth usage and improving efficiency. Enhanced user experience: Faster load times and responsiveness lead to a better user experience, reducing user frustration and increasing engagement. Cost savings: Caching can reduce the computational resources required for data processing and lower infrastructure costs by minimizing the need for expensive server resources. Improved availability: Caching can help maintain service availability during high-traffic periods or in case of temporary server failures by serving content from the cache. Types of Caching Client-Side Caching Client-side caching refers to the process of storing web resources, like HTML pages, CSS files, JavaScript scripts, and images, on the user's device, typically in their web browser. The purpose of client-side caching is to speed up web page loading by reducing the need to fetch resources from the web server every time a user visits a page. View more...Exploring Seamless Integration: Jakarta Data and Jakarta Persistence in Jakarta EE 11 With Open LibertyAggregated on: Wed Aug 16 2023 23:16:28 GMT+0000 (Coordinated Universal Time) In the ever-evolving landscape of enterprise Java, the seamless interaction between various specifications plays a pivotal role in shaping the architecture of modern applications. One such integration that garnered significant attention is between Jakarta Data and Jakarta Persistence, the latest evolution of the former Java Persistence API (JPA). The integration of Jakarta Data and Jakarta Persistence brings forth a unified approach to handling data, making application development more efficient, flexible, and aligned with the demands of contemporary software design. In this article, we embark on a journey to delve into the intricacies of integrating Jakarta Data and Jakarta Persistence within the Jakarta EE 11 framework. We’ll explore how this integration is a foundation for developing robust and scalable applications. To illustrate the concepts in action, we’ll leverage Open Liberty, an open-source application server that supports the latest Jakarta EE specifications. View more...Boosting Model Interoperability and Efficiency With the ONNX FrameworkAggregated on: Wed Aug 16 2023 23:16:28 GMT+0000 (Coordinated Universal Time) The rapid growth of artificial intelligence and machine learning has led to the development of numerous deep learning frameworks. Each framework has its strengths and weaknesses, making it challenging to deploy models across different platforms. However, the Open Neural Network Exchange (ONNX) framework has emerged as a powerful solution to this problem. This article introduces the ONNX framework, explains its basics, and highlights the benefits of using it. Understanding the Basics of ONNX What Is ONNX? The Open Neural Network Exchange (ONNX) is an open-source framework that enables the seamless interchange of models between different deep learning frameworks. It provides a standardized format for representing trained models, allowing them to be transferred and executed on various platforms. ONNX allows you to train your models using one framework and then deploy them using a different framework, eliminating the need for time-consuming and error-prone model conversions. View more...Top 10 Microservices FrameworksAggregated on: Wed Aug 16 2023 23:01:28 GMT+0000 (Coordinated Universal Time) Microservices are a type of service-oriented architecture that is used to develop multifunctional and complex applications. Instead of creating a complete software unit, developers can add small services to create software. Is it confusing to know what framework to use for creating applications with microservices? Find out what the latest frameworks have to offer. When you have chosen the framework, hire dedicated developers that build high-performance, scalable applications. View more...Choosing an OLAP Engine for Financial Risk Management: What To Consider?Aggregated on: Wed Aug 16 2023 23:01:28 GMT+0000 (Coordinated Universal Time) From a data engineer's point of view, financial risk management is a series of data analysis activities on financial data. The financial sector imposes its unique requirements on data engineering. This post explains them with a use case of Apache Doris and provides a reference for what you should take into account when choosing an OLAP engine in a financial scenario. Data Must Be Combined The financial data landscape is evolving from standalone to distributed, heterogeneous systems. For example, in this use case scenario, the fintech service provider needs to connect the various transaction processing (TP) systems (MySQL, Oracle, and PostgreSQL) of its partnering banks. Before they adopted an OLAP engine, they were using Kettle to collect data. The ETL tool did not support join queries across different data sources, and it could not store data. The ever-enlarging data size at the source end was pushing the system toward latency and instability. That's when they decided to introduce an OLAP engine. View more...Mastering AWS Cost Management and OptimizationAggregated on: Wed Aug 16 2023 22:31:28 GMT+0000 (Coordinated Universal Time) Amazon Web Services (AWS) provides a powerful and flexible cloud platform, but it's essential to manage and optimize your costs effectively to maximize the value of your investment. In this blog, we will explore various tips and techniques for optimizing AWS costs, including monitoring usage, setting budgets, and leveraging cost-effective services. By implementing these strategies, you can ensure that your AWS infrastructure remains efficient, cost-effective, and aligned with your business goals. Let's have a look at all strategies one by one. View more...Java ZGC Algorithm TuningAggregated on: Wed Aug 16 2023 22:01:28 GMT+0000 (Coordinated Universal Time) ZGC is a specialized garbage collector that focuses on managing large heaps and minimizing pauses in Java applications. It tackles the challenges of garbage collection in scenarios where memory-intensive workloads and consistent response times are vital. Leveraging concurrent processing capabilities and advanced algorithms, ZGC offers an effective solution for optimizing performance in modern Java applications. In this post, we will explore techniques to tune ZGC for enhanced performance specifically. However, if you want to learn more basics of Garbage Collection tuning, you may watch this JAX London conference talk. ZGC Tuning Parameters ZGC, a garbage collector in Java, takes a different approach to tuning by minimizing the number of exposed JVM parameters. Unlike traditional garbage collectors that require fine-grained adjustments, ZGC focuses on optimizing the management of large heap sizes while providing efficient garbage collection with minimal configuration overhead. This streamlined approach allows developers to primarily focus on one key JVM parameter for tuning: the heap size. View more...Building a Real-Time IoT Application With Solace TechnologyAggregated on: Wed Aug 16 2023 21:31:28 GMT+0000 (Coordinated Universal Time) As a software developer who lives with his aging parents, I was worried about their well-being and wanted to ensure that they were safe and secure at all times. So, I created an IoT application that would help me monitor their activities in real time and alert me in case of any emergency. I started by installing sensors in different parts of the house to monitor temperature, humidity, and sound levels. I then used Solace technology to build an IoT application that would use the data from these sensors to alert me in case of any abnormal activity. I connected the sensors to the Solace messaging platform, which would send messages to my smartphone whenever there was a change in the sensor data. For instance, when the temperature in the house dropped below a certain level, I received an alert on my phone, prompting me to check on my parents’ heating system. View more...Three Best React Form LibrariesAggregated on: Wed Aug 16 2023 21:31:28 GMT+0000 (Coordinated Universal Time) How can we simplify work as our React project's forms become increasingly intricate? Creating and handling forms in React can be challenging and time-consuming. Fortunately, third-party libraries can help. Many exceptional form libraries are available that can simplify the process and make React form development more efficient and enjoyable. The primary question then becomes which form of library is the best. In this blog post, we'll discuss three of the top React form libraries that every React developer should know. View more...MySQL Multi-Source ReplicationAggregated on: Wed Aug 16 2023 21:16:28 GMT+0000 (Coordinated Universal Time) MySQL replication is a powerful feature that allows you to copy and synchronize data from one server to another. In this guide, we will explore the concept of multi-source replication in MySQL and learn how to configure and manage this advanced replication technique. Whether you are a seasoned database administrator or a beginner in the world of MySQL, this article will provide you with a deep understanding of multi-source replication and its benefits. What Is Multi-Source Replication? Multi-source replication in MySQL enables a replica server to receive data from multiple source servers. Imagine a scenario where you have a replica server at your workplace and several source servers located in different locations. With multi-source replication, you can directly gather data from these source servers and consolidate it on your replica server. View more...FeatureFlag 101Aggregated on: Wed Aug 16 2023 21:16:28 GMT+0000 (Coordinated Universal Time) In the dynamic landscape of modern software applications, catering to millions of users is a norm, and multiple teams work on various components concurrently. With the Agile development approach, new features are continuously onboarded to enhance application capabilities. However, releasing these features to all users simultaneously can lead to potential issues, such as exposing buggy features, performance regressions, and user dissatisfaction. The Role of Feature Flags To mitigate these risks and ensure a smoother rollout, the use of feature flags has become instrumental. Feature flags, also known as feature toggles, act as conditional switches that enable or disable specific functionality in an application without requiring redeployment. By serving as gatekeepers, feature flags allow developers to grant access to new features gradually, targeting specific user groups. View more... |
|
|