News Aggregator


5 Common Data Structures and Algorithms Used in Machine Learning

Aggregated on: Tue Jun 06 2023 14:30:46 GMT+0000 (Coordinated Universal Time)

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 Truffle

Aggregated on: Tue Jun 06 2023 14:30:46 GMT+0000 (Coordinated Universal Time)

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 Overview

Aggregated on: Tue Jun 06 2023 14:00:46 GMT+0000 (Coordinated Universal Time)

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 Automation

Aggregated on: Tue Jun 06 2023 13:30:46 GMT+0000 (Coordinated Universal Time)

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 Automate

Aggregated on: Tue Jun 06 2023 13:30:46 GMT+0000 (Coordinated Universal Time)

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 Systems

Aggregated on: Tue Jun 06 2023 00:15:46 GMT+0000 (Coordinated Universal Time)

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 Setup

Aggregated on: Mon Jun 05 2023 23:30:46 GMT+0000 (Coordinated Universal Time)

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 Applications

Aggregated on: Mon Jun 05 2023 23:30:46 GMT+0000 (Coordinated Universal Time)

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 QA

Aggregated on: Mon Jun 05 2023 23:15:46 GMT+0000 (Coordinated Universal Time)

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 Practices

Aggregated on: Mon Jun 05 2023 22:30:46 GMT+0000 (Coordinated Universal Time)

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 Communication

Aggregated on: Mon Jun 05 2023 22:30:46 GMT+0000 (Coordinated Universal Time)

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 Development

Aggregated on: Mon Jun 05 2023 21:15:46 GMT+0000 (Coordinated Universal Time)

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 Kotlin

Aggregated on: Mon Jun 05 2023 19:30:46 GMT+0000 (Coordinated Universal Time)

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 Examples

Aggregated on: Mon Jun 05 2023 19:00:46 GMT+0000 (Coordinated Universal Time)

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 Injection

Aggregated on: Mon Jun 05 2023 18:30:46 GMT+0000 (Coordinated Universal Time)

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 Technologies

Aggregated on: Mon Jun 05 2023 17:30:46 GMT+0000 (Coordinated Universal Time)

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 Flutter

Aggregated on: Mon Jun 05 2023 17:30:46 GMT+0000 (Coordinated Universal Time)

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 Files

Aggregated on: Mon Jun 05 2023 17:30:46 GMT+0000 (Coordinated Universal Time)

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 Jinja2

Aggregated on: Mon Jun 05 2023 17:00:45 GMT+0000 (Coordinated Universal Time)

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 APIs

Aggregated on: Mon Jun 05 2023 17:00:45 GMT+0000 (Coordinated Universal Time)

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 Cassandra

Aggregated on: Mon Jun 05 2023 17:00:45 GMT+0000 (Coordinated Universal Time)

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: Mon Jun 05 2023 17:00:45 GMT+0000 (Coordinated Universal Time)

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: Implementation

Aggregated on: Mon Jun 05 2023 14:45:45 GMT+0000 (Coordinated Universal Time)

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: Mon Jun 05 2023 14:45:45 GMT+0000 (Coordinated Universal Time)

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 Solutions

Aggregated on: Mon Jun 05 2023 14:15:45 GMT+0000 (Coordinated Universal Time)

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 Java

Aggregated on: Mon Jun 05 2023 14:15:45 GMT+0000 (Coordinated Universal Time)

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 Healthcare

Aggregated on: Mon Jun 05 2023 14:15:45 GMT+0000 (Coordinated Universal Time)

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 Threats

Aggregated on: Mon Jun 05 2023 13:45:45 GMT+0000 (Coordinated Universal Time)

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 Practices

Aggregated on: Mon Jun 05 2023 13:15:45 GMT+0000 (Coordinated Universal Time)

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...

Test Your Smart Contract Code with ChatGPT and Diligence Fuzzing

Aggregated on: Sat Jun 03 2023 23:30:45 GMT+0000 (Coordinated Universal Time)

ChatGPT is exceptional at finding bugs without requiring any meaningful additional context beyond the source code. This makes it an excellent first place to start your testing journey. One of the first things you learn as a smart contract coder is that contracts are extremely unforgiving when it comes to vulnerabilities. Contracts are immutable by default. At the same time, they’re capable of handling extraordinary amounts of money. This makes security (and smart contract testing) arguably the biggest concern for any team of web3 developers. 

View more...

Microservices With Apache Camel and Quarkus (Part 2)

Aggregated on: Sat Jun 03 2023 14:30:44 GMT+0000 (Coordinated Universal Time)

In the first part of this series, we saw a simplified microservices-based money transfer application, implemented using Apache Camel and AWS SDK (Software Development Kit) as Java development tools and Quarkus as a runtime platform. As noted, there are many deployment scenarios that might be considered in order to run the production of such an application; the first and simplest one is running it locally in a standalone manner. It's the scenario that we'll be considering during this new post. Quarkus is able to run your applications in two modes: JVM (Java Virtual Machine)-based and native. The JVM-based mode is the standard classical way of running Java applications. Here, the running application isn't executed directly against the operating system, but in kind of an execution medium where Java libraries and APIs are embedded and wrapped around. These libraries and APIs might be very large, and they occupy a specific part of the memory named Resident Set Size (RSS). In order to know more about the RSS and Quarkus (as opposed to how Spring Boot handles it), see here. 

View more...

Essential Architecture Framework: In the World of Overengineering, Being Essential Is the Answer

Aggregated on: Fri Jun 02 2023 23:00:44 GMT+0000 (Coordinated Universal Time)

Before telling you how we found and executed an essential architecture framework for successful software, we need to remember the context we live here and, possibly, you will identify with it. Following the history of software development, we have never had so many options for frameworks, programming languages, and project templates, and at the same time, we have never failed so much in meeting customer expectations.

View more...

How To Use Geo-Partitioning to Comply With Data Regulations and Deliver Low Latency Globally

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

In today's interconnected world, application users can span multiple countries and continents. Maintaining low latency across distant geographies while dealing with data regulatory requirements can be a challenge. The geo-partitioning feature of distributed SQL databases can help solve that challenge by pinning user data to the required locations. So, let’s explore how you can deploy a geo-partitioned database cluster that complies with data regulations and delivers low latency across multiple regions using YugabyteDB Managed.

View more...

Health Check Response Format for HTTP APIs

Aggregated on: Fri Jun 02 2023 18:45:44 GMT+0000 (Coordinated Universal Time)

I'm continuing my journey of getting more familiar with HTTP APIs by reading related RFCs. This time, I read the Health Check Response Format for HTTP APIs at the suggestion of Stefano Fago. In this post, I'd like to summarize my reading. Note that it's a draft. Moreover, it has been dormant for nearly two years and, thus, has been automatically expired. However, it's the closest to a specification on health checks and thus deserves some love.

View more...

Tech Hiring: Trends, Predictions, and Strategies for Success

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

The tech industry has seen a significant change in the skills, qualifications, and titles listed in job postings over the past few years. What does that mean for companies — and for the candidates themselves? On this week’s episode of Dev Interrupted, we talk to Maryam Jahanshahi, co-founder and Head of R&D at Datapeople, who breaks down the biggest hiring trends in tech, from title inflation to salary transparency and the skyrocketing costs of recruitment. 

View more...

Constructing Real-Time Analytics: Fundamental Components and Architectural Framework — Part 2

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

In Part 1, I discussed the growing demand for real-time analytics in today's fast-paced world, where instant results and immediate insights are crucial. It compared real-time analytics with traditional analytics, highlighting the freshness of data and the speed of deriving insights as key features. The article emphasized the need for selecting the appropriate data architecture for real-time analytics and raised considerations such as events per second, latency, dataset size, query performance, query complexity, data stream uptime, joining multiple event streams, and integrating real-time and historical data. And I teased the following Part 2 of the article, which delves into designing an appropriate architectural solution for real-time analytics. Building Blocks  To effectively leverage real-time analytics, a powerful database is only part of the equation. The process begins with the capacity to connect, transport, and manage real-time data. This introduces our first foundational component: event streaming.

View more...

Step Into Serverless Computing

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

Serverless computing has revolutionized the process of building and deploying modern applications. It offers a demand-driven approach to backend services, eliminating the need for users to manage supporting infrastructure. With auto-scaling capabilities, serverless services allow businesses to pay for the exact resources they utilize, leading to cost optimization. Although servers are still utilized, developers are relieved of the responsibility of server management and monitoring. Historical Context In the early days of the Internet, creating a web application required purchasing expensive and bulky hardware to run a server. The introduction of cloud computing allowed users to remotely rent fixed quantities of servers or server space. However, this often led to over-provisioning to avoid exceeding monthly limitations due to sudden increases in traffic. Cloud providers introduced auto-scaling models to address this issue, but unexpected spikes in activity like DDoS attacks remained costly. 

View more...

Structured Logging

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

When I was learning about writing serverless functions with AWS Lambda and Java, I came across the concept of structured logging. This made me curious about the concept of Structured Logs, so I decided to explore it further. What Is Structured Logging? Typically, any logs generated by an application would be plain text that is formatted in some way.

View more...

A React Frontend With Go/Gin/Gorm Backend in One Project

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

The ReactAndGo project is used to compare a single page application frontend based on React and a Rest backend based on Go to Angular frontends and Spring Boot/Java backends.  The goal of the project is to send out notifications to car drivers if the gas price falls below their target price. The gas prices are imported from a provider via MQTT messaging and stored in the database. For development, two test messages are provided that are sent to an Apache Artemis server to be processed in the project. The Apache Artemis server can be run as a Docker image, and the commands to download and run the image can be found in the 'docker-artemis.sh' file. As a database, Postgresql is used, and it can be run as a Docker image too. The commands can be found in the 'docker-postgres.sh' file.

View more...

Risk Based Testing: Comprehensive Guide With Best Practices

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

Risk based testing (RBT) is a type of software testing that focuses on identifying and prioritizing high-risk areas of the software applications being tested. In simple terms, risk based testing is an approach that evaluates the features of software applications at high risk of failure based on software complexity. Even though there are other software testing types like white box testing, grey box testing, and system testing that focus on testing every feature of software applications, why do we need risk based testing?

View more...

Azure Virtual Machines

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

Azure Virtual Machines (VMs) are a cornerstone of Microsoft Azure's Infrastructure as a Service (IaaS) offering. In this article, we will explore the capabilities of Azure VMs and delve into their key features and benefits. We will also discuss practical use cases and highlight the advantages of leveraging Azure VMs for your cloud computing needs. Understanding Azure Virtual Machines Azure Virtual Machines provide on-demand, scalable computing resources in the cloud. They are virtualized instances of computer systems that enable users to run applications and services without the need to manage the underlying hardware infrastructure. Azure VMs offer a wide range of options for operating systems, configurations, and sizes, allowing users to customize their virtual machine environment according to their specific requirements.

View more...

Grow Your Skills With Low-Code Automation Tools

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

Some of the tools we can use to automate tests are low-code tools. One of the tools I use to automate browser testing is the low-code tool, Ghost Inspector. You can develop reliable automated tests and learn a great deal about test automation by using Ghost Inspector. What Is Ghost Inspector? Ghost Inspector can be used to automate tests without writing any code. You can build a test out of steps that do not require coding. You can identify elements in the web page that you are testing using an identifier such as an XPath or a CSS selector and then choose a test step that interacts with the element in the way that you require, for example, by clicking or by assigning a value. This provides a simple way to create automated tests. Creating tests without writing code can be valuable because it enables a tester who can not write code to start creating tests. However, if a large number of tests are created in this way, they can become can be time-consuming to maintain and hard to read. They can take a lot of time to maintain because if an element on a page that you are testing changes, you will have to find every use of that element and update it. Tests created in this way can also be hard to read as when you read the steps, see a step that clicks on a div whose class starts with a certain string and then a step that waits for an element that is a span whose class contains a certain string, and you are left trying to remember what do these steps do.

View more...

Automating Data Quality Check in Data Pipelines

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

In a recent survey by Great Expectations, 91% of respondents revealed that data quality issues had some level of impact on their organization. It highlights the critical importance of data quality in data engineering pipelines. Organizations can avoid costly mistakes, make better decisions, and ultimately drive better business outcomes by ensuring that data is accurate, consistent, and reliable. However, 41% of respondents in the survey also reported that lack of tooling was a major contributing factor to data quality issues. Employing data quality management tools in data pipelines can automate various processes required to ensure that the data remains fit for purpose across analytics, data science, and machine learning use cases. They also assess existing data pipelines, identify quality bottlenecks, and automate various remediation steps.

View more...

White Box Testing Tutorial: A Comprehensive Guide With Examples and Best Practices

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

White box testing is a software testing method in which the internal structure and implementation of the software being tested are known and used as the basis for designing the test cases. It involves testing the software at the code level and requires a deep understanding of the code and the design of the software. It is also known as glass box, transparent box, clear box, or structural testing. Most testers have already had some experience with this box-testing at some point in their careers. Techniques like this are battling for existence in a world that is becoming increasingly agile-driven. Adopting agile approaches does not include putting off any tasks to meet the project effectively.

View more...

How To Approach Java, Databases, and SQL [Video]

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

We want to save our thumbnail data to a database so that we can render our pictures to a nice HTML gallery page and finish the proof of concept for our Google Photos clone!  Which database should we use and why? Which Java database API? What database tools will make our lives easier along the way? Find out in this episode of Marco Codes!

View more...

Using Render Log Streams to Log to Papertrail

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

The console.log function — the poor man’s debugger — is every JavaScript developer’s best friend. We use it to verify that a certain piece of code was executed or to check the state of the application at a given point in time. We may also use console.warn to send warning messages or console.error to explain what happened when things have gone wrong. Logging makes it easy to debug your app during local development. But what about debugging your Node.js app while it’s running in a hosted cloud environment? The logs are kept on the server, to which you may or may not have access. How do you view your logs then?

View more...

The Dark Side of DevSecOps and Why We Need Governance Engineering

Aggregated on: Thu Jun 01 2023 21:30:44 GMT+0000 (Coordinated Universal Time)

For today’s software organizations security has never been more top of mind. On one side, there is the present and growing threat of being hacked by malicious actors, set out in Crowdstrike’s recent Global threat report. And on the other, there is a wave of cybersecurity regulation from the government to mitigate such cybersecurity vulnerabilities. Software organizations feel the heat from both sides as they work to improve their security posture in ways that will also achieve audit and compliance with new rules.  To meet these challenges, we hear a lot about the software supply chain and the importance of securing it with DevSecOps approaches and golden paths to production. Since the Biden administration's executive order in 2021, we’ve heard a lot about software bills of materials (SBOMs), and new products, services, and vendors have sprung up to help us with them. But do DevSecOps and supply chain approaches meet our cybersecurity challenges head-on?

View more...

Effective Java Collection Framework: Best Practices and Tips

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

Java collection framework provides a variety of classes and interfaces, such as lists, sets, queues, and maps, for managing and storing collections of related objects. In this blog, we go over effective Java collection framework: best practices and tips. What Is a Collection Framework? The Java collection framework is a key element of Java programming. To effectively use the Java collection framework, consider factors like utilizing the enhanced for loop, generics, avoiding raw types, and selecting the right collection.

View more...

Angular Unit Testing With Karma and Jasmine

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

Angular unit testing checks isolated pieces of code in an Angular app. It allows users to add new features without interrupting any other part of their application. Jasmine is a JavaScript testing framework, and Karma is a node-based testing tool for JavaScript codes across multiple real browsers. This blog helps you get started with Angular unit testing leveraging Karma and Jasmine. Introduction to Angular Unit Testing First things first, you must have Angular installed on your machine. That is where you need to start Angular installation. If you already have Angular installed, feel free to skip the next step.

View more...

JavaScript Temperature Anomaly Chart

Aggregated on: Thu Jun 01 2023 17:45:44 GMT+0000 (Coordinated Universal Time)

Hello! In this article, we will create a Temperature Anomaly chart.

View more...