News AggregatorFlutter vs React Native. How to Cover All Mobile Platforms in 2022 With No HassleAggregated on: Fri May 13 2022 14:50:52 GMT+0000 (Coordinated Universal Time) Mobile app development is a must for any business that pursues top-notch customer experience. When we hear about a new exciting product or service appearance, in most cases, we won’t ask ourselves whether the company provides mobile app support or not. Instead, we grub our smartphones, always at hand, to decide if a new app is worthy of becoming our day-to-day companion. The current state of technology frees us from the need to reinvent the wheel. There’s no more need to hire several teams to build mobile apps for different platforms since the cross-platform approach helps erase the difference between them. Today, we will look at Flutter and React Native to decide who outplays who in terms of community, performance, and other factors. Who Is Who in the World of Cross-platform Development Flutter is Google’s invention. One of the main distinctive features of Flutter enables programmers to use the same code base for creating an app that will work in browsers and on mobile devices. So if you're on a tight budget and want to cut costs of reaching both mobile and web users, it can be a decent choice. View more...Rebuild System Databases in SQL ServerAggregated on: Fri May 13 2022 12:20:52 GMT+0000 (Coordinated Universal Time) In this article, we will talk about system database corruption. It means that one or more system databases are corrupted. Corruption in system databases, such as master databases, is a big problem because SQL Server will stop. Let’s see how to fix this problem. About System Databases System databases are databases used internally by SQL Server and are necessary for its operation. View more...Debugging Deadlocks and Race ConditionsAggregated on: Thu May 12 2022 21:50:51 GMT+0000 (Coordinated Universal Time) Thread debugging has the reputation of being one of the most arduous tasks for developers. I beg to differ. Asynchronous debugging is so much worse. It’s supposed to solve threading problems, and to some degree, async helps… But it doesn’t make debugging simpler. I will get into that in the next post. Today we'll discuss the process of debugging threading issues and dealing with deadlocks and race conditions in the debugger. View more...Time Synchronization in Distributed Systems: TiDB's Timestamp OracleAggregated on: Thu May 12 2022 21:20:51 GMT+0000 (Coordinated Universal Time) Today, distributed databases lead the market, but time synchronization in distributed systems remains a hard nut to crack. Due to the clock skew, the time in different nodes of a distributed database cannot be synchronized perfectly. Many computer scientists have proposed solutions such as the logic clock by Leslie Lamport (the 2013 Turing Award winner), the hybrid logical clock, and TrueTime. PingCAP’s TiDB, an open-source distributed NewSQL database, adopts timestamp oracle (TSO) to deliver the time service and uses a centralized control service — Placement Driver (PD) — to allocate the monotonically increasing timestamps. View more...IoT Product Development Guide for StartupsAggregated on: Thu May 12 2022 19:50:51 GMT+0000 (Coordinated Universal Time) Ninety percent of companies in the 2021 Microsoft IoT Signals survey have already adopted the Internet of Things solutions to reduce operating costs, unlock additional revenue streams, and gain a competitive edge. Yet, 35% of IoT projects stall at the proof-of-concept (POC) stage, while 75% of all IoT initiatives never materialize into market-ready products. View more...Untangling the Potential of IoT Protocols and StandardsAggregated on: Thu May 12 2022 18:50:51 GMT+0000 (Coordinated Universal Time) At a time, when the number of Internet of Things (IoT) devices is continuously increasing, cases of DDoS (Distributed Denial of Service) attacks are also being witnessed at frequent intervals. Gartner reports that by 2020, the number of IoT devices will approximately reach 25 billion. It means that it is time when businesses, customers, and other stakeholders should know about the IoT protocols and standards, which can potentially keep the possibilities of security breaches at bay. Guide to IoT Protocols and Standards IoT communication protocols are modes of communication that protect and ensure optimum security to the data being exchanged between connected devices. View more...How Does the Database Understand and Execute Your Query?Aggregated on: Thu May 12 2022 18:50:51 GMT+0000 (Coordinated Universal Time) A vector query in Milvus is the process of retrieving vectors via scalar filtering based on a boolean expression. With scalar filtering, users can limit their query results with certain conditions applied to data attributes. For instance, if a user queries for films released during 1990-2010 and scores higher than 8.5, only films whose attributes (release year and score) fulfill the condition. This post aims to examine how a query is completed in Milvus 2.0 from the input of a query expression to query plan generation and query execution. Query Expression Expression of the query with attribute filtering in Milvus adopts the EBNF(Extended Backus–Naur form) syntax. The image below is the expression rules in Milvus. The EBNF syntax of a logical expression. Logical expressions can be created using the combination of binary logical operators, unary logical operators, logical expressions, and single expressions. Since EBNF syntax is itself recursive, a logical expression can be the outcome of the combination or part of a bigger logical expression. A logical expression can contain many sub-logical expressions. The same rule applies in Milvus. Suppose a user needs to filter the attributes of the results with many conditions. In that case, the user can create his own set of filtering conditions by combining different logical operators and expressions. View more...ERP Integration Guide | Common Scenarios, Challenges, and MethodsAggregated on: Thu May 12 2022 18:05:51 GMT+0000 (Coordinated Universal Time) The phrase “We are only as strong as we are united, as weak as we are divided,” though coming from the fictional character of Albus Dumbledore in the Harry Potter saga, can also perfectly illustrate the importance of ERP integration to companies. An ERP system is often considered the backbone of an enterprise, whether eCommerce, supply chain, manufacturing, or healthcare business. But to unfold the full potential of their ERP system, companies will need to integrate it with other applications to ensure a consistent data flow, provide access to accurate information across the entire company, and automate enterprise business processes. So, let’s dive into why we should integrate ERP with other enterprise business systems in the first place, what the common scenarios are and what advantages they bring, and review the 3 current popular methods for ERP system integrations. View more...Top Six Kubernetes Best Practices for Fleet ManagementAggregated on: Thu May 12 2022 17:05:51 GMT+0000 (Coordinated Universal Time) Provisioning a Kubernetes cluster is relatively easy. However, each new cluster is the beginning of a very long journey, and every cluster you add to your Kubernetes fleet increases management complexity. In addition, many enterprises struggle to keep up with a rapidly growing number of Kubernetes clusters spread across on-prem, cloud, and edge locations—often with diverse Kubernetes configs and using different tools in different environments. Fortunately, there are a number of K8s best practices that will help you rein in the chaos, increase your Kubernetes success, and prepare you to cope with fast-growing and dynamic Kubernetes requirements. This blog describes six strategic Kubernetes best practices that will put you on the path to successfully managing a fleet. View more...Waterfall Vs. Agile Methodologies: Which Is Best For Project Management?Aggregated on: Thu May 12 2022 16:35:51 GMT+0000 (Coordinated Universal Time) “Chaos was the law of nature; Order was the dream of man.” ― Henry Adams View more...Getting Started With Redis on AWS the Easy WayAggregated on: Thu May 12 2022 16:05:51 GMT+0000 (Coordinated Universal Time) Like most of the services, Amazon MemoryDB for Redis is fully integrated with Amazon VPC and always launches your cluster in a VPC. It means that you cannot access it from outside your VPC. While initially exploring these services (MSK, Elasticache for Redis, etc.), I usually followed the documentation that involved setting up EC2, SSH-ing into the instance, installing/copying stuff (language, runtime, code, client, etc.), and then tried things out. Most often, the first step is the hardest, and it's important for developers to have the least amount of friction as possible to "get going." I looked for simpler ways and found AWS Cloud9 to be super useful. It was quick, predictable, and had a bunch of useful tooling readily available. View more...Continuous Integration Patterns and Anti-PatternsAggregated on: Thu May 12 2022 16:05:51 GMT+0000 (Coordinated Universal Time) Reap the full benefits of enhanced code quality, better testing practices, and early error detection with proper implementation of continuous integration processes. This Refcard explains detailed patterns and anti-patterns for core areas of CI, including version control, the build stage, pipeline monitoring, documentation, as well as communication and collaboration across teams and within the organization. View more...How to Create Components in SvelteAggregated on: Thu May 12 2022 15:35:51 GMT+0000 (Coordinated Universal Time) In my last article, we looked at how to make your first Svelte application using SvelteKit. Today we'll look at the next step - how to make components, so you can start to build real Svelte applications. What Are Components, and Why Do We Need Them? Components are a common theme in all modern frontend frameworks. Essentially, as we started to build more and more complicated applications, we found that we were reusing the same types of things all the time. For example, a registration form may appear in multiple different places and use exactly the same code. View more...The Evolution of Configuration Management: IaC vs. GitOpsAggregated on: Wed May 11 2022 21:35:51 GMT+0000 (Coordinated Universal Time) Misconfigurations are the leading cause behind security incidents in Kubernetes-orchestrated or otherwise containerized environments. Without proper configuration in place, applications would run into problems ranging from noncompliance and inconsistencies to performance bottlenecks, security vulnerabilities, and functionality failure. Therefore, configuration management is a critical component in a software development lifecycle for maintaining systems in a desired, consistent state. According to Red Hat’s State of Kubernetes Security report, misconfigurations were the leading cause behind security incidents in Kubernetes-orchestrated or otherwise containerized environments. Without proper configuration in place, applications would run into problems ranging from noncompliance and inconsistencies to performance bottlenecks, security vulnerabilities, and functionality failure. This would make cloud-native systems unstable and cause them to become a liability to businesses. For this reason, configuration management is a critical component in a software development lifecycle for maintaining systems in a desired, consistent state. However, the way configuration management is done has been evolving over the years. This post traces the history of configuration management, focusing on how GitOps handles this critical aspect of running cloud-native applications today. View more...How to Watch for Nested Changes in VueAggregated on: Wed May 11 2022 21:05:51 GMT+0000 (Coordinated Universal Time) Vue is a reactive language, meaning when the data changes, we can automatically have that represent itself in the HTML. To help us with this, we can use watchers in vue to watch for a change in data, and then do something to the HTML, or send a message to the user about it. This works fine for simple datasets, but if we start to have data that is deeper than one level, it becomes harder to watch it properly for changes. View more...How to Generate Fake Test DataAggregated on: Wed May 11 2022 20:35:51 GMT+0000 (Coordinated Universal Time) Are you also often uninspired when you need to think of useful test data for your unit tests? Is ‘John Doe’ your best test friend? Do not worry, Java Faker comes to the rescue! In this blog, you will learn how to generate your test data. 1. Introduction Making up test data is one of the hardest tasks when writing tests. Often you will see 123 when numbers are being used, or John Doe when a name is needed. But this also means that the test will always run with the same data. This is on the one hand a good thing because your tests needs to be stable, but on the other hand a pitty because you also want to find errors. And this is more likely when random test data is being used. View more...Top Soft Skills to Identify a Great Software EngineerAggregated on: Wed May 11 2022 20:35:51 GMT+0000 (Coordinated Universal Time) Software developers are often thought to be people that are technically sound and have a very logical approach while dealing with any issues. However, regardless of the hard skills they acquire, it is equally important that software engineers have specific soft skills. These interpersonal attributes when corroborated to their technical skills tend to make the greatest software developers of all times. Here are some of those soft skills that one must look for in a software engineer to bring an all rounder candidate on board. Skills of Software Engineer That You Must Look Out For Communication Good communicators can bring a lot of benefits to the team. Regardless of the profession, it is one skill that can lead to the effective elaboration of tasks, clear description of expectations and the requirements of the projects. An effective communicator delivers thoughts clearly and this could be figured out in the first round of the interview itself. However, besides being an effective communicator, a great software developer is a good listener too. View more...Transactions vs. Analytics in Apache KafkaAggregated on: Wed May 11 2022 19:50:51 GMT+0000 (Coordinated Universal Time) Workloads for analytics and transactions have very unlike characteristics and requirements. The use cases differ significantly. SLAs are very different, too. Many people think that Apache Kafka is not built for transactions and should only be used for big data analytics. This blog post explores when and how to use Kafka in resilient, mission-critical architectures and when to use the built-in Transaction API. Analytical and Transactional Workloads Let's begin by defining the terms. The YouTube channel 'Databases Demystified' has a great episode: Analytical vs. Transactional. I use and enhance its explanation in the following subsections. View more...Synchronization Methods for Many-To-Many AssociationsAggregated on: Wed May 11 2022 18:50:51 GMT+0000 (Coordinated Universal Time) The many-to-many association is a common thing in data modeling. In JPA entities, it is implemented as collections that store associated entities from the other side of the association. To keep collections consistent on both sides, developers usually implement data synchronization methods. This article will highlight common issues that happen when adding synchronized methods for many-to-many bidirectional associations in JPA entities. Many-To-Many Bidirectional Associations: Why Synchronize? Before speaking about sync methods, let's look at bidirectional associations and their implementation in JPA in detail. Imagine a blog application where we can mark every post with several tags. We can make two JPA entities for this application: Post and Tag with appropriate attributes like ID, text, etc. Now we need to establish the association between one post and many tags. To do this, let's define a tags attribute on the Post entity, the type of this attribute is Set<Tag>. Notice that each tag can be reused for more than one post. In this case, we can create the posts attribute of type Set<Post> in the Tag entity. This is the bidirectional many-to-many association: we have references to several entities on both sides of the association. And now, our data model looks like this: View more...Choosing Between GraphQL Vs RESTAggregated on: Wed May 11 2022 18:20:51 GMT+0000 (Coordinated Universal Time) REST has long been a popular architectural paradigm for creating APIs, but GraphQL's rise in popularity in recent years has put REST's reign in jeopardy. When it comes to establishing or leveraging API architecture design, the debate between GraphQL and REST is raging, and most firms are split between the two. While REST is generally recognized as the industry standard for creating APIs, GraphQL has been heralded as a new technology capable of overcoming REST's limitations. REST and GraphQL are two data retrieval technologies. The main distinction between GraphQL and RestAPIs is that GraphQL is a query language standard, whereas REST is an architectural idea for network-based computing. View more...JUnit 5 Tutorial: Nice and Easy [Video]Aggregated on: Wed May 11 2022 18:05:51 GMT+0000 (Coordinated Universal Time) Ever looked for a comprehensive intro to JUnit 5 that is fun and entertaining at the same time? Then have a look at this brand-new episode of the "Marco Codes" YouTube channel: JUnit 5 Tutorial - Nice & Easy. In this video, you'll learn how to use JUnit 5 like a professional. Understand what Maven/Gradle dependencies you'll need, how to write tests, how to use other assertion libraries like AssertJ and asserting JSON & XML, and explore new JUnit 5 features like @ParameterizedTests, @TestFactorys, and @ExtendWith. By the end of the tutorial, there won't be many questions left when it comes to JUnit 5. View more...How to Hash, Salt, and Verify Passwords in NodeJS, Python, Golang, and JavaAggregated on: Wed May 11 2022 17:05:51 GMT+0000 (Coordinated Universal Time) Storing passwords can be a nuance due to the liability of them being compromised. To make matters worse, users tend to reuse passwords across services which makes storing them securely even more important. The aim behind storing passwords securely is that even if the database containing them is compromised, the attacker can’t decipher any user’s actual password. This rules out storing passwords in plain text. View more...Open Source Security RisksAggregated on: Wed May 11 2022 17:05:51 GMT+0000 (Coordinated Universal Time) What Are Open-Source Vulnerabilities? While open-source software drives rapid innovation, it introduces many challenges. On the one hand, it provides developers with ready-made software to add functionality to existing applications or even use it as the foundation for a new product. However, it also introduces security risks. Open-source security has become a cornerstone of modern application security. Open-source vulnerabilities emerge when open-source software contains or creates security risks. A vulnerability may occur due to careless integration of components, lack of security functionality, poorly written code, and malicious code. Threat actors exploit open source vulnerabilities to launch various attacks, which enable them to abuse resources, steal data, and damage systems. View more...Businesses Discover the Shocking Cost of Bad DataAggregated on: Wed May 11 2022 16:50:51 GMT+0000 (Coordinated Universal Time) Big data has become incredibly important for many companies all over the world. Unfortunately, the growing emphasis on big data has led to some poor decision-making. Many entities are prioritizing data scalability at the expense of data quality. As a result, bad data is costing them a lot of problems. In the USA alone, bad data - any poorly structured or managed data - costs the country over $3 trillion every year. Whether it’s created from data engineers accidentally adding an extra zero, a discrepancy in how things are formatted, or even problems with the data system itself, a lot can go wrong with data. View more...Kafka Fail-Over Using Quarkus Reactive MessagingAggregated on: Wed May 11 2022 16:05:51 GMT+0000 (Coordinated Universal Time) Background Recently, I came across a scenario where, at first glance, we needed an active-active Kafka cluster with bi-directional replication using MirrorMaker2. However, while diving deeper into the nuances of the solution that this particular project demanded, a number of factors showed this wasn't really the case. For example, a look at how the producers/consumers will handle temporary failure and/or guarantee exactly-once processing downstream added a ton of complexity to the problem. By taking a step back to the design board, we changed the approach to an active-standby scenario. In this scenario, the active cluster will replicate all its configs, consumer groups, and topics to the standby cluster that will become active in case of failure. However, this posed a problem: how can I get the minimum possible downtime in my producers without the need to restart them with the new configuration for the new cluster? View more...A Simple Guide to Heaps, Stacks, References, and Values in JavaScriptAggregated on: Wed May 11 2022 15:35:51 GMT+0000 (Coordinated Universal Time) A common concept in software engineering, in general, is the idea of reference versus value. JavaScript has an interesting way of storing variables, objects, and functions, and misunderstanding this can lead to confusion further down the road. Developers need to know how these concepts work since it is fundamental to JavaScript. This article will cover how JavaScript manages values and references, which will pay dividends when working on complicated applications and websites. Memory Storage in JavaScript To understand what we mean when we say JavaScript stores values and references, we need to understand where JavaScript stores them. There are two places JavaScript stores this data: View more...Stupid Things Orgs Do That Kill Productivity w/ Netflix, FloSports & Refactoring.clubAggregated on: Wed May 11 2022 00:35:50 GMT+0000 (Coordinated Universal Time) We want to make the Dev Interrupted podcast a vital, enjoyable part of your week. Please take 2 minutes and answer our new Listener Survey. It lets us know a bit about you, what you want from Dev Interrupted and what you want from podcasts in general! At LinearB, we like to think we spend all our time figuring out how to unlock developer potential. To find ways to let devs do more of the work they love and reduce the amount of time they spend dealing with needless hurdles, idling and churn. View more...Securely Authenticate to Google Cloud From GitHubAggregated on: Wed May 11 2022 00:35:50 GMT+0000 (Coordinated Universal Time) Recently, I designed a simple metrics-tracking system. A Python script queries different providers' APIs for metrics, e.g., Twitter, GitHub, etc. The idea is to run this script each day, store them in Google BigQuery, and provide an excellent data visualization in Google Data Studio. I'm a big fan of automation, so I'm using GitHub Actions. Accessing Google Cloud With a Service Account I query the different APIs with different Python libraries. All of them allow authenticating by passing a parameter. In general, it's a token. One can store the value in a GitHub secret, get it as an environment variable in the GitHub Action and use it in the code. View more...Product Owner Anti-PatternsAggregated on: Wed May 11 2022 00:05:50 GMT+0000 (Coordinated Universal Time) No other role in Scrum can contribute to mediocre outcomes like the Product Owner—garbage in, garbage out. Therefore, the following list of some of the most common Product Owner anti-patterns might be a starting point to reflect on the role; maybe, there is room for improvement? If you recognize some anti-patterns in your daily work, why don’t you ask the rest of the Scrum Team for support? For example, run a Retrospective with teammates and stakeholders on how the team is doing regarding figuring out what is worth building. View more...Composable ArchitectureAggregated on: Tue May 10 2022 23:05:50 GMT+0000 (Coordinated Universal Time) Introduction There has been a change in basic assumptions by which the software selections happen in an organization. Though principles, policies, and guidelines dictate the same, in most cases the following factors have a direct bearing in the selection of products, technologies, and development: Existing skills within an organization Availability of the chosen skill in the market Protection of existing investment in infrastructure, IP, human resources How the chosen product/technology deals with the existing IT landscape And of course, other tangible benefits such as TCO, ROI, time to market, etc. Let us get into the brass tacks of composable architecture. Every architecture is made up of domains and capabilities mapped to the domains. Each capability can be fulfilled by one or more solution components and vice versa. View more...Don't Underestimate DocumentationAggregated on: Tue May 10 2022 22:35:50 GMT+0000 (Coordinated Universal Time) Documentation Sounds Like an Annoying, Boring Thing Maybe you feel that documenting the project or your code is an extra annoying step. Often, documentation for projects is outdated and irrelevant. In such cases, most of the expertise is hidden in analysts or just developers. In this article I'll try to explain why having a good documentation culture will make projects much more stable and successful. Writing Good Documentation Often Makes a Big Difference There is no specific rule on how to make perfect documentation, but obviously plain text without details is much worse than documentation with screenshots, diagrams, and images. It takes time to write a quality manual, but it's worth it because it solves many problems at once, including slow onboarding processes, slow communication, single-person projects, and lack of team support. View more...Exporting and Importing Projects in EclipseAggregated on: Tue May 10 2022 22:35:50 GMT+0000 (Coordinated Universal Time) I admit that I have (a few? or not so few) bad habits: one of them is that usually, I find a way to do things, and if that works, I stick with it. I know that there are other ways to do things, but hey, why bother? and sometimes a good friend asks an excellent question (are there any bad questions?), and this lets me review the way I’m doing things. and here is such a thing: exporting and importing projects in eclipse. Archive Files With Drag & Drop Here is how I usually move or copy a project to another machine: View more...Templates Are Indispensable for GitOps-Driven AutomationAggregated on: Tue May 10 2022 21:05:50 GMT+0000 (Coordinated Universal Time) Kubernetes gained popularity as it simplifies the scalability and management of containerized applications. It enables you to deploy and manage nodes, pods, containers, services, and configuration maps across the entire application lifecycle. It was difficult to achieve such flexibility and control with scripts. But thanks to Kubernetes’ declarative approach to infrastructure, you can define precise changes at any scale. Kubernetes also empowers you to integrate multiple tools to facilitate automated scheduling, deployment, monitoring for the containers. One such tool is Helm, a CNCF-adopted automation framework that has gained popularity not just in Kubernetes circles, but in the GitOps ecosystem as well. In this post, we look at how Helm helps automate the deployment of cloud-native applications on Kubernetes the GitOps way. What Is Helm? Although described as a package manager, Helm is a powerful tool to automate installation, deployment, upgrade, and management of Kubernetes applications. Managing Kubernetes manifests is a task that grows in complexity as systems scale. A single deployment needs multiple YAML files with duplicated and hardcoded values. This required a better way to manage Kubernetes YAML files through a simple packaging format, which led to Helm Charts. However, Helm’s scope goes beyond templating. View more...Getting Started With IaCAggregated on: Tue May 10 2022 21:05:50 GMT+0000 (Coordinated Universal Time) Infrastructure as code (IaC) means that you use code to define and manage infrastructure rather than using manual processes. More broadly, and perhaps more importantly, IaC is about bringing software engineering principles and approaches to cloud infrastructure. In this Refcard, explore the fundamentals of IaC and how to get started setting up your environment. View more...COBOL Copybook Transformation to JSON in Mule4Aggregated on: Tue May 10 2022 20:35:50 GMT+0000 (Coordinated Universal Time) What Is COBOL Copybook? A COBOL copybook is a type of flat file that describes the layout of records and fields present in the file. Example of Copybook data: View more...Deployment of Low-Latency Solutions in the CloudAggregated on: Tue May 10 2022 19:50:50 GMT+0000 (Coordinated Universal Time) Traditionally, companies with low-latency requirements deployed to bare-metal servers, eschewing the convenience and programmability of virtualization and containerization in an effort to squeeze maximum performance and minimal latency from “on-premises” (often co-located) hardware. More recently, these companies are increasingly moving to public and private “cloud” environments, either for satellite services around their tuned low-latency/high-volume (LL/HV) systems or in some cases for LL/HV workloads themselves. View more...13 Tips to Write Better Posts for DevelopersAggregated on: Tue May 10 2022 19:50:50 GMT+0000 (Coordinated Universal Time) You want to start a blog, or perhaps you already have one and want to improve your style. Maybe you’re writing documentation and struggling to make it concise and clear. Whatever the case, you have a blank screen in front of you and a head full of ideas. How do you start? How do you write a blog that other developers will enjoy? Here are 13 things I’ve learned over my years of writing for developers. View more...Check if an Object Contains All Keys in an Array in JavaScriptAggregated on: Tue May 10 2022 19:50:50 GMT+0000 (Coordinated Universal Time) Sometimes in JavaScript, we have an object which we need to conform to a specific set of keys. This is possible through type enforcement in TypeScript, but if we want to do certain things if the keys don't exist, then we have to take a different approach. For example, suppose we are receiving the following object from an array, where firstName, lastName, and age are all needed for an operation we want to complete. For example View more...After COVID, Developers Really Are the New KingmakersAggregated on: Tue May 10 2022 19:50:50 GMT+0000 (Coordinated Universal Time) Several years ago, pre-COVID, I wrote the article Developers are the New Kingmakers. Today, companies see the value of developers as being even greater. Since the pandemic began, we've seen a renewed focus on digital transformation. Companies and industries are transforming two to three times faster than they were prior to COVID. Businesses have moved online and become more data-driven than ever before. This has created a demand for application development and data analytics skills. View more...Path-Based Routing in Render With Kong API GatewayAggregated on: Tue May 10 2022 19:50:50 GMT+0000 (Coordinated Universal Time) If you’re building a microservice-backed application, a key benefit is separating the concerns of your application across individual microservices, each with its own ability to scale and encapsulate different functionality. The frontend—ostensibly a single-page application running in your user’s browser—will need access to the microservices that make up your web application. Each service could be directly accessible to the public web, but that adds security concerns. An API gateway, however, allows for a centralized layer to handle concerns like authentication, traffic monitoring, or request and response transformations. API gateways are also a great way to leverage rate limiting and caching to improve the resilience and performance of your application. View more...How to Determine if Microservices Architecture Is Right for Your Business?Aggregated on: Tue May 10 2022 19:50:50 GMT+0000 (Coordinated Universal Time) Two types of widespread architecture exist in the market - Monolithic architecture and microservices architecture. While the latter is getting widespread recognition in the IT industry, does that mean you should jump into microservices architecture adoption? Is it the right solution for your business? This article will help you understand the core concepts of both the architecture to make an informed decision regarding the choice of architecture for your business. What Is Monolithic Architecture? Monolithic architecture puts all the functionalities of the software into a single codebase. The codebase, usually, is internally divided into layers, namely the presentation layer, business logic layer, and database layer. This codebase, consisting of layers, is deployed as a single jar/war file. View more...How Can APIs Enable GDPR Compliance?Aggregated on: Tue May 10 2022 19:20:50 GMT+0000 (Coordinated Universal Time) The General Data Protection Regulation (GDPR) is considered “the world’s strongest set of data protection rules,” enforcing limits on what organizations can do with personal data in the EU. Its enforcement since 2018 led to varying effects in countries outside the EU, inspiring new data privacy laws around the world. Commercially speaking, it has become a trading measure for countries to do business with the EU. Especially if they want to get a piece of the EU’s data processing market, or want to sell to European residents, they will have to follow and comply with the rules and regulations set forth by the GDPR. Some countries incorporated GDPR’s provisions into their existing privacy laws, while others have enacted nationwide GDPR-like legislations. View more...Role of Development Team in an Agile EnvironmentAggregated on: Tue May 10 2022 18:50:50 GMT+0000 (Coordinated Universal Time) The goal behind the Agile Development process is to facilitate the rapid delivery of software through an iterative process. But development teams adopting the Agile development approach often find themselves shifting back to conventional software development practices due to the inappropriate distribution of roles and responsibilities in an Agile environment. View more...Counting Faster With PostgresAggregated on: Tue May 10 2022 18:20:50 GMT+0000 (Coordinated Universal Time) Count queries are probably the most-used aggregate queries in a relational database. Counting is a fundamental operation required for many CRUD applications like sorting, pagination, and searching. But counting records can become terribly slow as your dataset grows. Fortunately, there are strategies for dealing with this problem. This article will show you a few approaches. Data Setup Since we are just exploring count queries, we do not need an extensive data setup. We can create a simple table with just one column. You can do that with the commands below: View more...A Smarter RedisAggregated on: Tue May 10 2022 17:20:50 GMT+0000 (Coordinated Universal Time) Everybody loves Redis. It's fast, easy to use from almost any programming language, and works exactly as it should. In addition, it's got an impressive list of modules for additional functionality. It's an excellent product. Sometimes, though, we may want Redis to be a little smarter. View more...Factors To Consider When Choosing an SQL ClientAggregated on: Tue May 10 2022 17:20:50 GMT+0000 (Coordinated Universal Time) Working with SQL through the command line can be tedious and difficult, but interacting with your data doesn't have to be that way. Instead, you can use an SQL client. An SQL client is a front-end application that uses the services provided by a database. SQL clients connect to your database infrastructure and let you interact with the database behind a web server. The majority of clients strive to achieve speed and simplicity while eliminating the clutter that comes with administrative tools that were considered standard in the past. However, not all of them succeed. In this article, we'll look at some factors you should consider when choosing an SQL client. View more...Simulators vs. Emulators: What's the DifferenceAggregated on: Tue May 10 2022 16:35:50 GMT+0000 (Coordinated Universal Time) Simulators and emulators are frequently used interchangeably in the world of software testing. That makes logical up to a certain point. However, simulators and emulators are similar in many ways, and the distinctions between them aren't usually significant from a test engineer's perspective. View more...What Is White Box Testing? — A Brief GuideAggregated on: Tue May 10 2022 16:05:50 GMT+0000 (Coordinated Universal Time) What Is White-Box Testing? White Box Testing is a product evaluation method based on the application's internal code structure. White-box testing uses an insider's perspective of the framework and programming skills to configure test cases. Typically, this testing is done at the unit level. The code of the application under test is visible to testers here. View more...What Do Great Engineering Managers Need To Know About Compensation and Equity?Aggregated on: Mon May 09 2022 23:05:49 GMT+0000 (Coordinated Universal Time) Today we’re going to do a whirlwind tour of compensation. Hopefully, you’ll learn a bit along the way, and I’ll share an exercise for managers called a compensation review. What Do You Need To Know About Salary? The largest expense for engineering organizations is usually salary. Salary is mostly determined by supply and demand. Engineers are fortunate to be an industry with high demand. Companies have to compete based on salary and benefits in order to hire good engineers. Structured Pay and “Pay Equity” Some companies use structured pay. Structured pay is when there is a “system” for determining pay: View more...How to Use Geofences for Precise Audience MessagingAggregated on: Mon May 09 2022 22:35:49 GMT+0000 (Coordinated Universal Time) Precise messaging is an important way for mobile apps to retain users and is usually achieved by segmenting users into different groups according to their preferences and then adopting different messaging policies for each user segment. However, if you want to push messages to users based on their precise locations, in-depth customization is usually required since most available third-party messaging services cannot narrow the target audience down to a specific business area or a small area. With geofences, this issue can be effectively resolved. A geofence is a set of virtual boundaries that define a given area on a map. When a user's device enters or leaves the geofence, or stays in the geofence for a specific amount of time, messages and notifications can be automatically sent to an app on the user's device. Geofence and messaging capabilities can work together to precisely send messages to target audiences in a specified area. For example, suppose that a travel app wants to promote its ticket booking service in Paris. To do so, the app can create geofences for popular scenic spots in Paris. When a target user arrives at a scenic spot during a specified time range, the app will send them a promotion message such as "You have received a coupon for XYZ: Tap here to claim the coupon," increasing their willingness to buy a ticket. View more... |
|
|