News AggregatorHow To Read File Into Char Array in CAggregated on: 2023-06-07 12:45:47 When you are working in C programming language, you might encounter some problems which require reading a file into a character array, like analyzing the frequency of each character or converting every starting word of all sentences from lower case to upper case, or vice versa. The solution is really easy but probably isn't that simple for people who do not know much about file reading or writing. So in that article, you can learn step-by-step how to read files into character arrays in C. Open a File in C The easiest and most popular way to open a file in C is using the 'fopen' function in the format below: View more...A Comprehensive Guide To Testing and Debugging AWS Lambda FunctionsAggregated on: 2023-06-07 12:45:47 AWS Lambda functions are a powerful tool for running serverless applications in the cloud. But as with any code, bugs can occur that can result in poor performance or even system crashes. Testing and debugging Lambda functions can help you identify potential issues before they become a problem. In this guide, we’ll cover everything from unit testing to automated tests to ensure that your Lambda functions are running smoothly. Testing and Debugging AWS Lambda Functions When it comes to AWS Lambda functions, testing and debugging are crucial steps in ensuring that the code runs smoothly. One of the essential concepts to understand is what a test event is in AWS Lambda. A test event is a simulated event that triggers the Lambda function. It allows you to test the function's response to different inputs. View more...DevOps vs. DevSecOps: The DebateAggregated on: 2023-06-07 12:15:47 The DevOps vs. DevSecOps debate has recently been gaining more and more momentum in IT circles. However, these two concepts aren’t competitors; rather, they comprehend each other. It’s important to understand the difference between DevOps and DevSecOps to choose the right model for your software development environments. This blog addresses DevOps and DevSecOps in hopes of helping you make an informed decision. What Is DevOps? DevOps is a methodology that integrates development and operations teams to seamlessly coordinate and develop software applications so that each member shares the responsibility of a product throughout its lifecycle. It brings people, processes, and tools together to work as a single entity to automate release cycles, quickly respond to customer needs and deliver quality software faster and more efficiently. View more...Quality Control in Digital Transformation: Strategies for Ensuring a Positive OutcomeAggregated on: 2023-06-07 04:00:46 What Is Digital Transformation? Digital transformation is a process that prioritizes a customer-centric and technology-focused approach to all aspects of a business. It leverages advanced technologies such as AI, automation, and cloud computing to optimize data usage, improve decision-making, and enhance customer experiences. This process not only transforms customer expectations but also generates new business opportunities. While many organizations initiate digital transformation to address a specific market challenge, it is not a one-time solution. Instead, it is a continuous adaptation to a dynamic environment that aims to establish a technical and operational foundation for a flexible response to changing customer needs, market conditions, and global events. View more...How to Implement Istio in Multicloud and MulticlusterAggregated on: 2023-06-06 23:30:46 Today every application has microservices architecture where individual services are spread across public clouds and multiple Kubernetes clusters. Since all the communication of messages among services happens over the internet, it is very important to ensure the security of your data. You don’t want any malicious guy to read and record the data-in-transit (known as packet sniffing), or intervene in between the communication as someone you trust (IP spoofing), or perform a DoS attack such as bandwidth flooding or connection flooding, etc. The idea is security should always be developed in a layered approach to build defense in depth. When software engineers are developing containerized applications they need to think about security at Code, Container, Cluster, and Cloud levels (read 4 C’s of container security). View more...Introduction to Domain-Driven DesignAggregated on: 2023-06-06 23:15:46 Domain-driven design (DDD) is an approach to software development that focuses on understanding the domain of the problem being solved, and using that understanding to guide the design of the software. This approach is particularly well-suited to microservices architectures, where services are designed to be small, autonomous, and focused on a specific business capability. In this article, we will explore how domain-driven design can be used to design microservices, and why this approach is beneficial for building complex software systems. View more...Why I Prefer Trunk-Based DevelopmentAggregated on: 2023-06-06 23:15:46 These days, distributed version control systems like Git have "won the war" of version control. One of the arguments I used to hear when DVCSs were gaining traction was around how easy it is to branch and merge with a VCS like Git. However, I'm a big fan of Trunk-Based Development (TBD), and I want to tell you why. With trunk-based development, all developers work on a single branch (e.g., 'main'). You might have read or heard Martin Fowler or Dave Farley talking about it. It was when I was working with Dave (around about the time that Git was rapidly becoming the "go-to" version control system) that I really saw the benefits of trunk-based development for the team, particularly in an environment that was pioneering continuous delivery (Dave was writing the book with Jez Humble while I worked with him). View more...Idempotent Liquibase ChangesetsAggregated on: 2023-06-06 22:45:46 Abstract “Idempotence is the property of certain operations in mathematics and computer science whereby they can be applied multiple times without changing the result beyond the initial application” [Resource 3]. The purpose of this article is to outline a few ways of creating idempotent changes when the database modifications are managed with Liquibase. Throughout the lifetime of a software product that has such tier, various database modifications are being applied as it evolves. The more robust the modifications are, the more maintainable the solution is. In order to accomplish such a way of working, it is usually a good practice to design the executed changesets to have zero side effects, that is, to be able to be run as many times as needed with the same end result. View more...Adding Mermaid Diagrams to Markdown DocumentsAggregated on: 2023-06-06 20:00:46 Mermaid is a trendy diagramming tool. A year ago, it was integrated into the Markdown rendering of GitHub. It is also integrated into several editors (see "Include diagrams in your Markdown files with Mermaid" for more information). What can you do, however, if you use a different editor? What if you want to use your Markdown document in an environment that does not integrate Mermaid yet? What can you do if the diagram is not Mermaid but PlantUML, Graphviz, or any other diagramming tool? View more...Understanding Data Compaction in 3 MinutesAggregated on: 2023-06-06 17:45:46 What is compaction in the database? Think of your disks as a warehouse: The compaction mechanism is like a team of storekeepers (with genius organizing skills like Marie Kondo) who help put away the incoming data. In particular, the data (which is the inflowing cargo in this metaphor) comes in on a "conveyor belt," which does not allow cutting in line. This is how the LSM-Tree (Log Structured-Merge Tree) works: In data storage, data is written into MemTables in an append-only manner, and then the MemTables are flushed to disks to form files. (These files go by different names in different databases. In my community, we call them Rowsets). Just like putting small boxes of cargo into a large container, compaction means merging multiple small rowset files into a big one, but it does much more than that. As I said, the compaction mechanism is an organizing magician: View more...Revolutionizing System Testing With AI and MLAggregated on: 2023-06-06 17:15:46 The digital transformation of businesses involves the adoption of digital technologies to change the way companies operate and deliver value to their customers. This can include the use of cloud computing, artificial intelligence, big data analytics, the Internet of Things (IoT), and other digital tools. One of the significant challenges that come with digital transformation is ensuring that software systems remain reliable and secure. This is where software testing comes in. As software systems become more complex, testing becomes more critical than ever. It helps to ensure that software is functioning as expected, that bugs and vulnerabilities are identified and addressed, and that the software meets user needs and expectations. View more...Performance Comparison — Thread Pool vs. Virtual Threads (Project Loom) In Spring Boot ApplicationsAggregated on: 2023-06-06 17:15:46 In this article, we will briefly describe and roughly compare the performance of various request-handling approaches that could be used in Spring Boot applications. Efficient request handling plays a crucial role in developing high-performance back-end applications. Traditionally, most developers use the Tomcat embedded in Spring Boot applications, with its default Thread Pool for processing requests under the hood. However, alternative approaches are gaining popularity in recent times. WebFlux, which utilizes reactive request handling with an event loop, and Kotlin coroutines with their suspend functions have become increasingly favored. View more...Tuning EMQX To Scale to One Million Concurrent Connection on KubernetesAggregated on: 2023-06-06 17:15:46 When building an IoT-based service, we need to implement a messaging mechanism that transmits data collected by the IoT devices to a hub or a server. That mechanism is known as a messaging protocol. A messaging protocol is a set of rules and formats that are agreed upon among entities that want to communicate with each other. When dealing with IoT, one of the first things that come to mind is the limited processing, networking, and storage capabilities these devices operate with. These constraints make it challenging to implement a messaging protocol to facilitate communication. Ideally, we should use a protocol that takes all these issues into consideration. View more...How To Use Ethereum Events Properly: An Solidity Dapp TutorialAggregated on: 2023-06-06 16:45:46 In this tutorial, I will show you how to create a crowdfunding smart contract with a frontend showing the list of donations and learn an advanced technique to make the contract more efficient. If you are new to Solidity, you can check out my free solidity tutorial. Let’s start with a naïve solution: View more...Guide To Implementing BLoC Architecture in FlutterAggregated on: 2023-06-06 16:30:46 Flutter is a highly popular open-source mobile application development framework created by Google. It allows developers to build natively compiled mobile, web, and desktop applications from a single codebase. According to the latest survey conducted by Google, over 50% of Flutter developers have been using the framework for less than a year. Nearly 90% have reported being "satisfied" or "very satisfied" with Flutter. In addition, Flutter has been recognized as a top-performing framework regarding developer satisfaction and adoption by multiple industry reports, such as the "2020 Developer Survey Results" by Stack Overflow and the "2021 Mobile App Development Frameworks" report by GoodFirms. View more...From CPU to Memory: Techniques for Tracking Resource Consumption Over TimeAggregated on: 2023-06-06 16:30:46 Sometimes, it is necessary to examine the behavior of a system to determine which process has utilized its resources, such as memory or CPU time. These resources are often scarce and may not be easily replenished, making it important for the system to record its status in a file. By doing so, it becomes feasible to identify the most resource-intensive process in the past. If the system has not encountered an Out-of-Memory (OOM) killer, which can be found in the syslog, this information can be used to further pinpoint the problematic process. Atop Tool: An Overview There is a special tool that can be used both for real-time monitoring system usage and collecting system status into logs in the background. This is atop. With atop, you can gather information on CPU and memory usage, which can also be collected by other popular monitoring tools like top and htop. Additionally, atop provides insights into I/O and network usage, eliminating the need to install additional tools for network and I/O monitoring, such as iftop and iostat. In my opinion, atop is a versatile tool for many tasks. View more...How To Ensure Fast JOIN Queries for Self-Service Business IntelligenceAggregated on: 2023-06-06 16:30:46 A business intelligence (BI) tool is often the last stop of a data processing pipeline. It is where data is visualized for analysts, who then extract insights from it. From the standpoint of a SaaS BI provider, what are we looking for in a database? In my job, we are in urgent need of support for fast-join queries. Why JOIN Query Matters I work as an engineer that supports a human resource management system. One prominent selling point of our services is self-service BI. That means we allow users to customize their own dashboards: they can choose the fields they need and relate them to form the dataset as they want. View more...Core Knowledge-Based Learning: Tips for Programmers To Stay Up-To-Date With Technology and Learn FasterAggregated on: 2023-06-06 16:00:46 Remaining competitive in the IT industry is a challenge for programmers, as the latest technological breakthroughs, high competition, and rapid and practical learning are arising daily. This article offers suggestions and tactics for programmers to accelerate learning and stay current with the evolving technology landscape, building a solid foundation in computer science principles, utilizing tools such as ChatGPT, and mastering the basics. The Current State of the IT Industry The impact of artificial intelligence on specific IT industry roles is significant. The adoption of ChatGPT and similar systems mainly affects those who work with text and its analysis, such as technical writers, testers, and document specialists. View more...Decoding ChatGPT: The Concerns We All Should Be Aware OfAggregated on: 2023-06-06 15:30:46 OpenAI’s launch of ChatGPT has undeniably ushered in a new era in the realm of artificial intelligence (AI), revolutionizing the way we interact with conversational agents. This single tool showcases the remarkable advancements in technology, setting it apart from previous AI chatbots like Siri or Alexa. The rapid adoption of ChatGPT is evidence of its growing popularity and widespread use in various domains. ChatGPT was estimated to have reached 100 million monthly active users in January, just two months after launch, making it the fastest-growing consumer application in history, according to a UBS study on Wednesday. This significant reach demonstrates the unprecedented impact it has made within a short span of time. View more...Must-Have Tools for Streamlining Your Custom Software Development ProcessAggregated on: 2023-06-06 15:30:46 In today's digital age, custom software development has become an essential part of businesses to stay competitive in the market. However, the process of developing custom software can be time-consuming and complex, especially without the right tools. That's where this article comes in. We've compiled a list of the top 10 must-have tools for streamlining your custom software development process. These tools will help you increase productivity, improve collaboration, and ensure the quality of your software. Custom software development is a complex process that requires a lot of resources, time, and effort. From planning and designing to coding and testing, there are many stages involved in the development process. However, with the right tools, you can streamline the process and make it more efficient. By using the right tools, you can reduce errors, save time, and improve the overall quality of your software. View more...Personalized Code Searches Using OpenGrokAggregated on: 2023-06-06 14:30:46 Many organizations implement a full-featured code search/intelligence tool — e.g., SourceGraph or Atlassian Fisheye — allowing engineers to search the enterprise code base. Other orgs just use the native search of the hosted version control system, such as GitHub's or GitLab's search. There are other commercial and open sources ways to search code. Most of us, however, do not regularly work on code spanning the enterprise and would prefer results related to our current activities. You may also need to search the open source projects incorporated into your work. If this describes you, running OpenGrok on your laptop with a limited set of projects might be a solution. View more...5 Common Data Structures and Algorithms Used in Machine LearningAggregated on: 2023-06-06 14:30:46 Effective data structures are essential for machine learning algorithms to analyze and manipulate massive datasets. Programmers and data scientists may enhance performance and optimize their programs by understanding these data structures. Learn the most common data structures used in machine learning. View more...Deploy an ERC-721 Smart Contract on Linea with Infura and TruffleAggregated on: 2023-06-06 14:30:46 Ethereum has a well-known problem: transactions are slow, expensive, and don’t scale well. L2s (layer twos) are a new generation of blockchains built on top of Ethereum to solve this problem. Among these new layer two solutions, Linea, a zero-knowledge rollup (or zk rollup), is one of the most promising. In this article, we’ll look at Linea and why it could be the future of L2s. We’ll walk through a tutorial that creates and deploys a smart contract to Linea. And we’ll do so by using all the industry-standard tools you probably already know for building on the Ethereum network: Infura, MetaMask, Solidity, OpenZeppelin, and Truffle. Let’s get started! View more...Writing an Interpreter: High-Level OverviewAggregated on: 2023-06-06 14:00:46 Creating a new language for specific logic is sometimes unavoidable. Some use cases can be listed out: We want to develop a highly dynamic application that enables non-technical business users and system admins to customize the system and its workflow by writing code. I aim to make the application highly configurable without the need for a complex user interface. This approach is commonly referred to as a domain-specific language (DSL). Code Generation and Automation: Building a custom language can facilitate code generation and automation for repetitive or complex tasks. By defining a language that closely matches the problem domain, developers can write code at a higher level of abstraction and generate boilerplate or repetitive code automatically. This article aims to offer simple instructions on constructing an interpreter for a custom programming language. View more...The AI Revolution: Embracing the Future of Technology and AutomationAggregated on: 2023-06-06 13:30:46 The world is quickly changing due in large part to tremendous advances in artificial intelligence (AI) technology. AI is transforming sectors across the board, from self-driving vehicles to personalized healthcare. As we progress towards a future in which AI technology plays an ever larger part in our lives, it's critical to grasp how this cutting-edge technology is influencing our environment and what opportunities lie ahead. There are various mobile app development companies in Dubai that provide the most suitable (AI) technology for all kinds of industries. In this blog article, we'll look at how AI is altering several sectors and what the future holds for this intriguing topic. Prepare to discover how the future has arrived! What Is AI Technology? AI technology is revolutionizing industries by automating tasks and processes that were previously performed by humans. This includes tasks such as customer service, data entry, and even medical diagnosis. By automating these tasks, AI technology is able to improve efficiency and accuracy while reducing costs. View more...Agile Development Best Practices for Determining What To AutomateAggregated on: 2023-06-06 13:30:46 Agile teams will not prosper if they don’t use frameworks to automate various development processes, including tests, builds, test environments, etc. Understanding that the primary goal of all agile teams is to successfully deliver real value to the customer, which can be interpreted as providing functional software after the sprint, is necessary to comprehend why a lack of automation results in failure. This article will address the central questions of “What can and what we shouldn’t automate in agile projects.” What Can We Automate in an Agile Environment? Most types of testing benefit from automation, starting from basic unit tests through system tests. But, as you know, unit tests don’t supply enough coverage to catch system regression failures. Running a set of manual tests before every check-in, which could be dozens of times a day, isn’t practical. When developers can’t run tests by pushing a button, they will not be motivated. View more...DevOps in Legacy SystemsAggregated on: 2023-06-06 00:15:46 I had a discussion with one of my then-manager-colleagues about ensuring the movement of a planned item even if the only available team member has no expertise to take it on. The simple answer is to get that team member to a starting point with the help of the experienced ones, through a non-heavy pair work format, just enough to give them momentum. It is possible that the task won't be completed on time, but at least they got it moving. In practice, this is always easier said than done, since we always fall to the mindset of either: "It is going to be faster if the expert will do it" or "I'll just take this non-priority item which I have expertise on rather than mess up that very critical one." This somewhat siloed mentality is especially prevalent in legacy systems, adding to the hurdles of an already challenging DevOps adoption. View more...Getting Started With Istio in AWS EKS for Multicluster SetupAggregated on: 2023-06-05 23:30:46 With many microservices deployed across multicloud and hybrid infrastructure (cloud, containers, and VMs), the manageability of the network becomes challenging. The transactions among services happen on the public network, so the sensitivity of the matter increases magnitudinally with rising incidents of hacking and cyberattacks. Istio service mesh is becoming a center of app modernization for large and medium enterprises. Due to Istio’s phenomenal ability to manage and secure the network across cloud and container workloads, the cloud team and DevOps platform teams consider Istio service mesh for the first round of evaluation. View more...CPU vs. GPU Intensive ApplicationsAggregated on: 2023-06-05 23:30:46 CPU vs. GPU Intensive Applications Computing has become increasingly important in our daily lives and society as a whole. While the trend of transistor counts doubling every two years, known as Moore’s Law, may be coming to an end, computing continues to play a vital role. But we aren’t referring to running background applications that hog resources or playing the most visually intensive games. We are talking about the productive applications of computing for generational discovery. Computation has become an essential tool in many professions, with specialized subfields like computational biology, artificial intelligence and machine learning, and complex computational algorithms for industries like finance, weather, and more. Some of these fields have emerged in the last decade. View more...Squeezing Neurons into Narrow Spaces: AI in QAAggregated on: 2023-06-05 23:15:46 Today, AI based on neural networks is at a very interesting stage of its development. It has clearly taken off: we see numerous applications from reading CT scans to picking fruits. But adoption rates vary a lot. Recommendation engines, customer support bots, and other stuff that's been called ”internet AI” are fairly widespread; we see it everywhere in our lives. However, most areas, including software testing, aren’t quite there yet. What makes AI widely adopted and what’s tripping it up? Let’s take a look at our own field, software testing. Specifically, I want to see how well neural networks can generate automated tests, and what barriers there are to mass adoption of AI in our field. I’ll be looking first and foremost at the problems and difficulties not because I’m trying to be glass-half-empty, but because things that go wrong always tell us more about how a system works than things that go right. View more...Beta Testing Tutorial: Comprehensive Guide With Best PracticesAggregated on: 2023-06-05 22:30:46 Beta testing is the final phase of testing before releasing a product to the general public. This is usually done by a group of users representing the target audience. It is a crucial step in the development process as it identify and fix any remaining issues with the product before it is released to the global market. Various methods of beta testing are available, including online platforms where users can test remotely or in-person sessions where users can provide feedback and interact directly with the product. View more...How to Use an Anti-Corruption Layer Pattern for Improved Microservices CommunicationAggregated on: 2023-06-05 22:30:46 What Is an Anti-Corruption Layer (ACL)? In the world of microservices architecture, communication between services is of utmost importance. However, with the increasing complexity of microservices, communication between them can become a challenge. That's where the Anti-Corruption Layer (ACL) pattern comes into play. This pattern is designed to improve communication between microservices by establishing a layer between them that acts as a translator, ensuring that services can communicate with each other seamlessly. The Anti-Corruption Layer pattern is based on the concept of Domain-Driven Design (DDD). It essentially creates a layer between two services that translates one service's language or communication protocol to the other service's language or communication protocol. This layer acts as a mediator, ensuring that the communication between the two services is smooth and efficient. View more...A Complete Guide to Agile Software DevelopmentAggregated on: 2023-06-05 21:15:46 In the constantly evolving world of software product development, agility isn't just an advantage; it's a necessity. Agile software development, with its dynamic methodologies and iterative approach, has revolutionized how software is developed and delivered. Understanding Agile Software Development Agile software development is an approach that promotes iterative development throughout the software lifecycle, encouraging active user involvement, collaboration, and adaptation to changing requirements. It is rooted in the values and principles expressed in the Agile Manifesto, which emphasizes individuals and interactions, working software, customer collaboration, and responding to change. View more...New ORM Framework for KotlinAggregated on: 2023-06-05 19:30:46 If you have an aversion to new frameworks, don't even read this. For other kind readers, please note that here I'm going to present a proposal for an API for modeling database queries in a declarative style with strong Kotlin type checking primarily. Only some classes around entities are implemented; the database connection is missing for now. In the project, I tried to evaluate my experience and vision so far. However, not all ideas presented in this paper are completely new. Some of them I drew from the Ujorm framework, and the entity concept was inspired by the Ktorm framework. But the code is new. The prototype results from a mosaic that has been slowly pieced together and has now taken a form that is hopefully worth presenting. If you are not discouraged by the introduction, I will skip the general talk about ORM and let you get to the code samples. The demonstration examples use two relational database tables. This is an employee/department (unspecified organization) relationship where each employee may (or may not) have a supervisor. Both tables are described by entities from the following class diagram: View more...Part 3 of My OCP Journey: Practical Tips and ExamplesAggregated on: 2023-06-05 19:00:46 This is the third and final post about my OCP-17 preparation. In part one, I explained how playing a human virtual machine and refreshing your mastery of arcane constructs is not pointless, even if the OCP doesn’t — and doesn’t claim to — make you a competent developer. In the second part, I showed you how intrinsic motivation keeps itself going without carrots or sticks, provided you can find ways to make your practice fun and memorable. It's time to share some of these examples and tips. Make It Quality Time But first some advice about logistics and time management. As with physical exercise, short and frequent trumps long and sporadic. It’s more effective and more likely to become a habit, like brushing your teeth. Choose the time of day when you are most energetic and productive. The early morning works best for me because I’m a morning person. And there is a satisfaction in getting the daily dose crossed off your to-do list, even when it doesn’t feel like a chore. View more...Writing Better Code: Symfony Dependency InjectionAggregated on: 2023-06-05 18:30:46 Dependency Injection (DI) is widely used to manage class dependencies and avoid issues that can arise from implicit dependency usage. Most modern frameworks have native support for the DI feature or can use third-party libraries for it. In this article, we will describe the implementation of DI in the Symfony framework. Symfony uses the PSR-11 compatible service container to store and obtain services. The service container is aware of all registered services and their dependencies and can provide an already initialized and properly created instance of the required service. View more...Event-Driven Architecture Using Serverless TechnologiesAggregated on: 2023-06-05 17:30:46 In modern architecture, most of the system has some component of Asynchronous computing. Any application which you see has one versus other Asynchronous communications. Popular Examples of such applications are Video Streaming Services, where you stream the packet of data and then render it on client applications, Popular messaging applications, or any of the collaboration tools. These are just a handful of examples, but you can think of asynchronous communication anywhere where you are not transiting the data in the same request/response. What Is Event-Driven Architecture? Event-driven architecture can be visualized as a bunch of the applications module triggered by some kind of event, and then it processes and puts these events back into some place to be consumed by the other application. View more...Power of Cross-Platform Development: Building Apps for iOS, Android, and Web With Xamarin and FlutterAggregated on: 2023-06-05 17:30:46 In the modern age, where technology has evolved, software companies and developers face the challenge of reaching a broad audience base across multiple platforms. Commonly software app development often requires creating separate versions for each platform, which has increased the development time and resources. But, cross-platform development has appeared as a powerful solution, allowing developers to build apps that smoothly run on iOS, Android, and web platforms. In this article, you will explore two popular cross-platform frameworks, Xamarin and Flutter, and discuss their capabilities, advantages, and real-world examples to prove their value for a software development company. What Is Xamarin? Xamarin is an open-source framework that enables developers to build native applications for iOS, Android, and Windows using a single codebase written in C#. It offers a robust development environment and provides access to platform-specific APIs, ensuring a native user experience (UX). View more...Alipay: Large-Scale Model Training on Billions of FilesAggregated on: 2023-06-05 17:30:46 Ant Group, formerly known as Ant Financial, is an affiliate company of the Chinese conglomerate Alibaba Group. The group owns the world’s largest mobile payment platform Alipay, which serves over 1.3 billion users and 80 million merchants. Our team works on the AI platform. With the exponential growth of data, we create and optimize infrastructure that enables large-scale model training and overcomes the performance bottleneck while reducing the cost of data storage and computation. View more...Mastering Go-Templates in Ansible With Jinja2Aggregated on: 2023-06-05 17:00:45 The Power of Ansible, Jinja2, and Go-Templates in Streamlining DevOps Workflow Streamlining DevOps workflows with Go service templates can be an intimidating task, especially when dealing with YAML files that contain Go-inspired string interpolation, as seen in tools like Prometheus, Loki, and Promtail. However, when these files are managed with Ansible, a versatile IT automation tool, and Jinja2, a powerful Python templating engine, these complex tasks can be made easier and more efficient for DevOps professionals. The Challenge: Distinguishing Between Ansible Variables and Go Template Expressions A common challenge when using Ansible is distinguishing between Ansible variables and Go template expressions within YAML files. It's critical to generate a YAML file that includes literal {{ mustaches }} that Ansible should not interpolate. This is where Jinja2's {% raw %}{% endraw %} tags come into play, telling Ansible not to treat the enclosed text as Jinja2 code, thus avoiding variable interpolation. View more...Leveraging FastAPI for Building Secure and High-Performance Banking APIsAggregated on: 2023-06-05 17:00:45 In today's fast-paced digital world, the banking industry relies heavily on robust and secure APIs to deliver seamless services to customers. FastAPI, a modern web framework for building APIs with Python, has gained significant popularity due to its exceptional performance, scalability, and ease of development. In this blog post, we will explore the importance of FastAPI for developing banking APIs and how it can empower financial institutions to deliver efficient and secure services to their customers also discuss the implementation of automated test cases using the BDD framework. Unmatched Performance: FastAPI is built on top of Starlette, a high-performance asynchronous framework. It leverages Python's asynchronous capabilities to handle multiple requests concurrently, resulting in blazing-fast response times. For banking APIs that require quick response times, FastAPI ensures that transactions, queries, and account information can be retrieved swiftly, providing customers with an excellent user experience. Type Safety and Documentation: FastAPI's strong typing system, powered by Pydantic, allows developers to define clear data models and request/response schemas. This type of safety ensures that the data passed to and from the API is accurate and consistent. Additionally, FastAPI generates interactive and automatically documented APIs based on the defined models, making it easier for developers and other stakeholders to understand and consume the API. Security and Authentication: Banking APIs handle sensitive customer data, and security is of utmost importance. FastAPI provides built-in security features such as OAuth2 authentication, token validation, and request validation, enabling developers to implement robust security measures to protect customer information. Furthermore, FastAPI seamlessly integrates with other security frameworks and tools, allowing the implementation of various authentication and authorization mechanisms, including two-factor authentication and encryption, to meet the stringent security requirements of the banking industry. Scalability and Extensibility: FastAPI's asynchronous architecture enables horizontal scaling, allowing banking APIs to handle a large volume of concurrent requests. Financial institutions can easily scale their API infrastructure based on user demand without sacrificing performance. Additionally, FastAPI's modular design and compatibility with other Python libraries provide developers with the flexibility to extend functionality by integrating with existing banking systems, databases, or third-party services. Automated Testing and Debugging: FastAPI encourages and facilitates automated testing with tools like pytest and pytest-bdd. These testing frameworks enable developers to write comprehensive tests, ensuring the correctness and stability of the API. FastAPI's integration with the Swagger UI and ReDoc documentation tools further simplifies testing and debugging by providing an interactive interface to explore and validate API endpoints. Here's an example of a parameterized FastAPI code that creates a banking REST API to connect to a SQL Server database, extract account summary and user details, and return the JSON response. The parameter values are passed using a separate configuration file. Let's go step by step. View more...Hiding Data in CassandraAggregated on: 2023-06-05 17:00:45 Sometimes you need to control access to the data in your databases in a very granular way - much more granular than most databases allow. For instance, you might want some database users to be able to read only the last few digits of some credit card number, or you may need certain columns of certain rows to be readable by certain users only. Or maybe you need to hide some rows from some users under specific circumstances. View more...MVP Product Costing $100,000+ Without QA Testing. Is It Possible?Aggregated on: 2023-06-05 17:00:45 Recently, we released the beta version of our platform for crypto traders, which allows real-time analysis of the growth and decline charts of most cryptocurrencies as well as historical data. Currently, the product is undergoing closed testing with a group of investors. We are receiving feedback on the quality of the platform, fixing any bugs that arise, and preparing for the next stage of developing a full-fledged version of the product. During the initial discussions with the client, we discussed the prospects of launching the project within 3-3.5 months, taking into account the scope of work, and assessed it as unlikely (50% probability of launching a "working" product) and high-risk (90% probability of failure). If you're interested, I can talk about the method of risk assessment in future articles. Here's why we came to this conclusion: View more...Writing an Interpreter: ImplementationAggregated on: 2023-06-05 14:45:45 Part 1 can be found here. Lexer The Lexer serves as the most basic element. Its primary function involves iterating through the characters present in the source code. It may combine certain characters to create a single token and subsequently generate a token object with its associated type. This object is then added to the resulting list. View more...Understanding Dependencies...Visually!Aggregated on: 2023-06-05 14:45:45 Show of hands, how many of us truly understand how your build automation tool builds its dependency tree? Now, lower your hand if you understand because you work on building automation tools. Thought so! One frustrating responsibility of software engineers is understanding your project's dependencies: what transitive dependencies were brought in and by whom; why v1.3.1 is used when v1.2.10 was declared; what resulted when the transitive dependencies changed; how did multiple versions of the same artifact occur? View more...Strategies for Reducing Total Cost of Ownership (TCO) For Integration SolutionsAggregated on: 2023-06-05 14:15:45 Integration solutions play a vital role in connecting systems, applications, and data across an organization. While implementing these solutions is essential, it's equally important to minimize the Total Cost of Ownership (TCO) associated with their development, operation, and maintenance. By adopting cost-effective strategies, organizations can optimize their investments and achieve greater value from their integration initiatives. In this article, we explore effective approaches to reduce TCO for integration solutions. 1. Define Clear Objectives and Requirements Before embarking on an integration project, it is crucial to define clear objectives and requirements. This step ensures that the solution aligns with the strategic goals of the organization and helps avoid unnecessary development and maintenance costs caused by scope creep. By establishing well-defined objectives and requirements from the outset, you can maintain focus throughout the project, optimize resource allocation, and minimize the risk of unexpected expenses and delays. View more...Integrate Cucumber in Playwright With JavaAggregated on: 2023-06-05 14:15:45 Cucumber is a popular behavior-driven development (BDD) framework that allows you to write executable specifications in a natural language format. It promotes collaboration between stakeholders, developers, and testers by providing a common language that everyone can understand. Cucumber supports various programming languages, including Java, and provides a rich set of features for defining and executing test scenarios. Playwright, on the other hand, is a powerful open-source automation framework for web browsers that supports multiple programming languages, including Java. It provides a high-level API for automating web browsers such as Chrome, Firefox, and Safari. Playwright offers robust browser automation capabilities, including interactions with web pages, taking screenshots, handling cookies, and much more. View more...User Safety and Privacy Protection in the Age of AI Chatbots in HealthcareAggregated on: 2023-06-05 14:15:45 The use of AI chatbots in healthcare necessitates a comprehensive approach to address vital considerations. From data training to security measures and ethical practices, a wide range of precautions must be implemented. Human monitoring, user education, and mitigating the risks of anthropomorphism are crucial aspects to focus on. Find out how continuous monitoring and feedback promote transparency, user safety, privacy protection, and the provision of reliable information. View more...AI and Cybersecurity Protecting Against Emerging ThreatsAggregated on: 2023-06-05 13:45:45 Threats against technology are also growing exponentially along with technology. Cybercrime is big business; hackers are breaking into systems and stealing data using ever-more-advanced methods. Artificial Intelligence may hold the answer to defeating these nefarious forces. AI can assist in identifying new threats as they emerge in real-time and even foresee future assaults before they happen by employing machine learning algorithms and predictive analytics. Cybersecurity should be a top priority for organizations to safeguard digital assets and consumer data. For security teams, AI can be a potent tool for network visibility, anomaly detection, and threat automation. View more...Cucumber Selenium Tutorial: A Comprehensive Guide With Examples and Best PracticesAggregated on: 2023-06-05 13:15:45 Cucumber is a well-known Behavior-Driven Development (BDD) framework that allows developers to implement end-to-end testing. The combination of Selenium with Cucumber provides a powerful framework that will enable you to create functional tests in an easy way. It allows you to express acceptance criteria in language that business people can read and understand, along with the steps to take to verify that they are met. The Cucumber tests are then run through a browser-like interface that allows you to see what's happening in your test at each step. View more... |
|
|