News AggregatorDevOps and Open Source — Why Does This Duo Work so Well?Aggregated on: Wed Nov 30 2022 13:43:54 GMT+0000 (Coordinated Universal Time) Open Source is DevOps heaven. The world of Open Source and DevOps cultivate each other to create a virtuous circle of innovation, collaboration, and sharing. Imagine a world where everything would be free and accessible, the result of collaboration and the goodwill of human brains to perpetually innovate together selflessly. This dream is called Open Source. View more...How To Build An NFT Minting Dapp On FlowAggregated on: Wed Nov 30 2022 13:13:54 GMT+0000 (Coordinated Universal Time) If you’ve followed along with the Flow series so far, you already know that the Flow Blockchain excels in handling digital assets, such as NFTs. It was built from the ground up as a better alternative to Ethereum’s network congestion and high fee issues. In addition, the Cadence smart contract language is a first-of-its-kind resource-oriented programming language that makes creating and managing digital assets easy and efficient. Although Solidity is excellent at facilitating Web3 through smart contracts, there are drawbacks. Cadence improves upon Solidity’s flaws by providing the ability to upgrade smart contracts and features that reduce the risk of human error, among other improvements. View more...Quality Management – Whose Responsibility Is It Anyway?Aggregated on: Wed Nov 30 2022 13:13:54 GMT+0000 (Coordinated Universal Time) In 1924, W. A. Shewhart of Bell Telephone Laboratories developed a statistical chart to control product variables. This chart is the beginning of statistical quality control as we know it. After the second world war, engineers W. Edwards Deming and Joseph M. Juran, who worked as consultants in the Japanese manufacturing industry, created the concept of Total Quality, in which quality extends beyond the manufacturing process to all organizational processes and instills the values of quality in every worker called – Total Quality Management (TQM) View more...What Is Loosely Coupled Architecture?Aggregated on: Wed Nov 30 2022 13:13:54 GMT+0000 (Coordinated Universal Time) A loosely coupled architecture is a software application development model wherein multiple components are connected with one another but are not heavily dependent on each other. Together, these components create a general network or system, despite each service being an independent entity created to perform a single task. The primary purpose of a loosely coupled architecture is to create a system that doesn’t fail due to the failure of a single component. Service-oriented architectures (SOAs) normally comprise a loosely coupled architecture. View more...Health Apps and Data Privacy: Best Practices for DevelopersAggregated on: Wed Nov 30 2022 03:43:54 GMT+0000 (Coordinated Universal Time) The use of health apps has increased significantly in recent years as people look to take a more active role in their own health and wellness. However, while these apps can be useful tools, they also raise important privacy issues. Patients trusting developers with their health data is a major concern and one that developers must take seriously, as otherwise, it can lead to costly fines and reputational loss. Imagine this scenario: you’ve built a health app that helps users determine potential diagnoses. One of your users, worried that her partner is struggling with depression, searches for symptoms. She browses around possible diagnoses and looks at treatments. She decides it’s a possibility, but doesn't move forward with anything right now. View more...Debugging Cross-Border Agile Teams and ProcessesAggregated on: Wed Nov 30 2022 03:43:54 GMT+0000 (Coordinated Universal Time) Making Agile teams work effectively has never been easy. To get the most out of Agile, teams must get used to being honest with themselves about the work they do, and come to terms with the limits and obstacles they face. Once a team has become comfortable with being uncomfortable, the real productivity promised by Agile can emerge. This is especially true for cross-border teams that have members from different international cultures. As the world has become more distributed and virtual, the barriers to making Agile work have become more numerous and difficult to overcome. We may all be able to work remotely now, but that doesn’t mean that all cultural differences have vanished. View more...How to Secure Source Code and Protect It from TheftAggregated on: Wed Nov 30 2022 03:13:54 GMT+0000 (Coordinated Universal Time) Source code is one of the most valuable assets for any company. So if it gets stolen or leaked, this can result in colossal damages to your business. Source code theft can cause financial and reputational losses in the long term perspective. Even the giants in the industry are at risk, as the source code of Windows 2000 was stolen from Microsoft in 2004, and a recent data breach cost Capital One around $300 million. That's why securing your source code and protecting it from theft should be one of your top priorities. Why Is Securing Source Code Important? Recently, attempts to compromise services, software, apps, and devices have risen as the rewards for hackers can be quite profitable. Source code includes a lot of valuable information since it plays a crucial role in creating and building software, application, extensions, web services, and so much more. Unfortunately, source code security doesn't get enough attention in many cases. View more...Flutter AI Integration: Is It the Best Choice?Aggregated on: Tue Nov 29 2022 21:58:53 GMT+0000 (Coordinated Universal Time) If you are reading this article, you are probably one of the many developers who want to dive into the world of artificial intelligence and machine learning. You might have heard about Flutter and its awesome integration with AI. If you’re curious about which framework is best for your app and what AI integration is, read on! In this article, we will get you up to speed quickly by explaining everything there is to know about integrating Flutter with AI. Artificial Intelligence is modern magic. The AI app developers are more like magicians. I couldn't stop bragging about that because the use of artificial intelligence is widespread today, from entertainment and advertising to business decision-making, driving self-driving cars, and modelling complex physical processes. View more...What‘s New in .Net 7?Aggregated on: Tue Nov 29 2022 20:43:53 GMT+0000 (Coordinated Universal Time) .NET 7 is now available, which means that we can enjoy all sorts of new features and enhancements. Let's talk about the most interesting improvements: C# 11, containers, performance, GC, and so on. C# 11 We have already posted an article and described the novelties in C# 11. In that article, we covered new features: generic math support, raw string literals, the required modifier, the type parameters in attributes, and so on. View more...Geospatial Queries With Oracle JSON DatabaseAggregated on: Tue Nov 29 2022 20:28:53 GMT+0000 (Coordinated Universal Time) In this article, I want to document how to write geospatial queries against the Oracle Autonomous Database. This example will use the node-oracledb add-on for Node.js and run against an Oracle JSON database. I will not talk about provisioning a JSON database on Oracle Cloud - that will be left as an exercise to the user, if so inclined. This first bit is about setting up the development environment, creating the Node.JS project, and installing the supporting configuration and software required to connect to the remote database. I was investigating this functionality when building a simple phone application that would show places of interest based on the user's current coordinates. I created a small server-side Node.js application that ran in a Kubernetes cluster hitting an Oracle JSON database. The code presented here is a simplification that just demonstrates API usage. In the application, the user would select the distance from their current position to see all places of interest nearby. What is nice about this example is the code is all on the developer's side (Visual Studio on a Mac) accessing the remote database. This makes it easy to debug and iterate. View more...High-Performance Go HTTP Framework TastingAggregated on: Tue Nov 29 2022 20:28:53 GMT+0000 (Coordinated Universal Time) What Is Hertz? Hertz [həːts] is a high-performance, high-usability, extensible HTTP framework for Go. It’s designed to simplify building microservices for developers. Why Hertz? One of the highlights of Hertz is its extremely high performance. You can get an intuition for this by looking at the following statistics on echo requests. View more...How To Manage K8s Operator LifecycleAggregated on: Tue Nov 29 2022 20:28:53 GMT+0000 (Coordinated Universal Time) In this Talk, Anynines CEO Julian Fisher shares about the challenges of managing a Kubernetes operator's lifecycle. Julian and his team benchmarked multiple tools that could help with that. The talk covers Carvel, Helm, OLM, and Operator SDK, where the pros and cons are shared for each tool. Julian Fischer 00:00 View more...Kafka JDBC Source Connector for Large DataAggregated on: Tue Nov 29 2022 19:13:53 GMT+0000 (Coordinated Universal Time) Recently I had a task to migrate some data from an old monolith’s Oracle database to a microservice with a PostgreSQL database. The problem was that the data needed for migration had a parent table with around 2 million records with 150 columns and on top of that, everything was brought into view with a payload column aggregating data from various tables in XML. As you can imagine, the SELECT from that view was pretty slow, and by pretty, I mean insanely slow which was not going to work very well for the connector. So, in this article we’ll take a look at a similar simplified use case and how can we deal with it. Use case We have a course-catalogue application with a PostgreSQL database that deals with instructors and their courses. Now we need to migrate some legacy instructors from another PostgreSQL database that soon is going to be decommissioned. So we have instructors-legacy-db and the course-catalog-db. In our case, both databases won’t be that overwhelmed with records, with just about 200 records for the instructors-legacy-db, but for the sake of the example, just imagine that instructors-legacy-db is that table with 2 million cumbersome records. View more...Private Remote Maven Repository With ArtipieAggregated on: Tue Nov 29 2022 19:13:53 GMT+0000 (Coordinated Universal Time) Artipie is an open-source binary artefact management tool under an MIT license. It supports the following types of repositories: Docker, Maven, NPM, PyPI, Anaconda, RPM, Gem, Go, and so on. If you are eager to learn about Artipie in detail, you can read the DZone article An Easy Way to Get Your Own Binary Repository. Let’s focus on the Maven repository. Maven is a tool that can be used for building and managing any Java-based project. Maven has two types of repositories: View more...Testcontainers With Kotlin and Spring Data R2DBCAggregated on: Tue Nov 29 2022 19:13:53 GMT+0000 (Coordinated Universal Time) In this article, we will discuss testcontainers library and how to use it to simplify our life when it comes to integration testing our code. For the purpose of this example, I am going to use a simple application with its business centered around reviews for some courses. Basically, the app is a service that exposes some GraphQL endpoints for review creation, querying, and deletion from a PostgreSQL database via Spring Data R2DBC. The app is written in Kotlin using Spring Boot 2.7.3. View more...How to Choose Mobile Devices for Testing in 2022Aggregated on: Tue Nov 29 2022 18:13:53 GMT+0000 (Coordinated Universal Time) With the rapidly increasing popularity and complexity of mobile apps, you need to make sure your app works as intended across various device models, operating systems, and browsers. But with tens of thousands of mobile device models on the market and more being released every year, how do you choose which devices to test on, and how many do you actually need to test on for comprehensive testing coverage? In this article, we’ll provide best practices for selecting mobile devices to test, as well as our recommended devices to test on by region and business size. View more...How to Use MQTT in FlaskAggregated on: Tue Nov 29 2022 17:43:53 GMT+0000 (Coordinated Universal Time) Flask is a lightweight Web application framework written with Python, which is called a "micro-framework" because it uses a simple core for extension of other features, such as ORM, form validation tools, file upload, various open authentication techniques, etc. MQTT is a lightweight Internet of Things (IoT) message transmission protocol based on publish/subscribe mode. It can provide a real-time and reliable message service for networked devices with very less code and smaller bandwidth. It is widely used in IoT, mobile Internet, intelligent hardware, IoV, power and energy industries, etc. View more...Deno vs. NodeJS: A Must-Have ComparisonAggregated on: Tue Nov 29 2022 17:43:53 GMT+0000 (Coordinated Universal Time) JavaScript is not a new name. It is the most popular and frequently used data processing language that runs on every system. Many developers have been extensively skilled in the JavaScript language, and thus it has been continuously improving and evolving. Node.js has been a widely used platform that successfully represents JavaScript everywhere. We have to admit that Node.js has transformed the screenplay of web development and allows developers to use JavaScript for backend development. Node.js has a large number of users with the largest developer community. View more...Selenium With Python Tutorial: Adding Extensions in Firefox for TestingAggregated on: Tue Nov 29 2022 17:13:53 GMT+0000 (Coordinated Universal Time) Modern browsers are equipped with all sorts of functionalities, i.e., from bookmarks to GPS location tracking, developer tools, and more. Almost all modern web browsers have immense capabilities – Firefox has built-in screenshot capabilities, Opera has a free VPN, and Edge comes with built-in support for displaying ebooks with the EPUB extension. Though browsers like Firefox, Chrome, and others are majorly used for web browsing, the fact is that Add Ons (or extensions) in Firefox provide additional power to the web browser! The same rule of thumb applies to other browsers like Chrome, Edge, etc. Additional add-ons, plugins, and extensions are required to extend or customize browser functionalities, boost productivity, and suit the specific requirements of users and developers. Test automation engineers that use test automation can also benefit from browser extensions like normal end-users. In fact, testers often need to automate the testing of these extensions itself :slightly_smiling_face: View more...A Guide to Machine Learning App DevelopmentAggregated on: Tue Nov 29 2022 16:43:53 GMT+0000 (Coordinated Universal Time) Machine learning has smoothly weaved into our daily lives, and we do not even realize it. From asking Google for directions to using Siri, we have slowly become entirely dependent on machine learning. So what exactly is machine learning? View more...Managing Dotfiles With StowAggregated on: Tue Nov 29 2022 14:28:53 GMT+0000 (Coordinated Universal Time) As a programmer, much of our time at work is spent developing code (and attending meetings, of course. ), So much so that we usually spend a lot of time configuring the toolset that we use on a daily basis. We are not only talking about the evolution of the configuration but also about how to configure your new laptop, have several computers, or simply share a certain configuration of a certain tool with a colleague. The great majority of applications (and more in UNIX systems) are configured through the well-known “dotfiles” (stored in the user’s $HOME), which are not more than files or folders that begin with a . to configure the applications (ex: .bashrc, .git/). The purpose of starting with a dot is that, by default operating systems treat them as hidden files and don’t show them unless you tell them to. View more...4 Key DevOps Metrics for Improved Efficiency and PerformanceAggregated on: Tue Nov 29 2022 02:58:53 GMT+0000 (Coordinated Universal Time) We’re seeing an increasing number of organizations renew their focus on adopting and improving their DevOps practices to help optimize their software development life cycle and improve their delivery velocity to reach markets and customers faster. Here’s all you need to know about the four key DevOps metrics and how teams can use these metrics to improve dev efficiency and performance to build better and faster products for their customers. What Are DevOps Metrics? DevOps metrics are the data points used to measure the performance and efficiency of a team’s DevOps software development process. Since DevOps integrates the functions of both development and operation, the metrics should be able to measure and optimize the performance of both the processes and people involved. View more...Learn With Practice: API Versioning SnagsAggregated on: Tue Nov 29 2022 02:58:53 GMT+0000 (Coordinated Universal Time) I have finished watching a series of lessons on Designing and Versioning HTTP/REST APIs from well-known author Jeffrey Richter, who is an author of the best-sellers CLR via C# and Windows API via C++. For those who design back-end APIs, I do definitely recommend watching it (and reading the books as well, if you haven't), especially those who think that doing an API is simple (probably, impressed by several "Hello, World!" prototypes made during the weekends). View more...Creating Homebrew Formulas With GoReleaserAggregated on: Tue Nov 29 2022 02:58:53 GMT+0000 (Coordinated Universal Time) We chose to use GoReleaser at ObservIQ for our distro of the OpenTelemetry Collector to simplify how we build and support many operating systems and architectures. GoReleaser enables us to build targeting a matrix of GOOS and GOARCH targets as well as automate creating a wide range of deliverables. The ones we have utilized are building tarballs, nfpm packages, docker images, and Homebrew formula. For this article, the focus is on the Homebrew Taps capabilities in GoReleaser and our journey using it. Our goal was to make it easy for users to install our software on macOS so that they could easily try it out. We went with Homebrew as it’s familiar to many macOS users and would allow a user to try out our software and remove it just as easily when they are finished. View more...Process Debt Is Something You Should Care AboutAggregated on: Tue Nov 29 2022 02:28:53 GMT+0000 (Coordinated Universal Time) Intro and Problem Statement Early this year, the book Software Architecture Metrics: Case Studies to Improve the Quality of Your Architecture was published. Christian Ciceri, co-founder and chief architect for Apiumhub, is one of the co-authors. He wrote a chapter that is particularly useful in contexts where the architecture and environment still have many opportunities for improvement. He emphasizes the importance of private builds in the development process, with the underlying principle of his reasoning being easily understandable — you should make use of private builds and run their tests on your local machine, in an environment as close as possible to production, to obtain feedback on your build as soon as possible. View more...Liquibase on KubernetesAggregated on: Mon Nov 28 2022 21:43:53 GMT+0000 (Coordinated Universal Time) Context, Motivation, and Theory We have a microservices environment with Kubernetes(k8s), in which we develop a service that requires a database. We decided to do the migration management of the database using Liquibase. Eventually, we realized that some deploys left the database locked. After some research, we found the key. The k8s itself, if a deployment process takes longer than a certain time if the failureThreshold is exceeded combined with the initialDelaySeconds in the startupProbe, in our example, while applying migrations, it assumes that the Pod has been left in a corrupt and/or inconsistent state and kills the process. View more...Simulating and Troubleshooting StackOverflowError in ScalaAggregated on: Mon Nov 28 2022 20:43:53 GMT+0000 (Coordinated Universal Time) In this series of simulating and troubleshooting performance problems in Scala, let’s discuss how to simulate StackOverflowError. StackOverflowError is a runtime error, which is thrown when a thread’s stack size exceeds its allocated memory limit. Sample Program Here is a sample Scala program, which generates the StackOverflowError: View more...DevSecOps and Digital Transformation: Bridging the Security GapAggregated on: Mon Nov 28 2022 20:43:53 GMT+0000 (Coordinated Universal Time) The Covid-19 pandemic has accelerated digital transformation to a staggering speed. However, for most organizations going digital has also posed a considerable challenge. To ensure both longevity and success, organizations require a combination of the right people, the right tools, and the right skill sets. Nevertheless, digital transformation brings new scopes like databases, digital assets, cloud computing services, applications, and websites, thereby increasing the need to secure the organization. Therefore, it is vital to deploy a complete security approach in the form of DevSecOps to avoid security breaches, protect the company's goodwill, and maintain the customer’s connection. View more...O11y Guide: Bringing Monoliths Into the Cloud-Native WorldAggregated on: Mon Nov 28 2022 20:13:53 GMT+0000 (Coordinated Universal Time) This is the fifth article in the series covering my journey into the world of cloud-native observability. If you missed any of the previous articles, head on back to the introduction for a quick update. After laying out the groundwork for this series in the initial article, I spent some time in the second article sharing who the observability players are. I also discussed the teams that these players are on in this world of cloud-native o11y. For the third article, I looked at the ongoing discussion around monitoring pillars versus phases. In the fourth article, I talked about keeping your options open with open-source standards. View more...Artificial Intelligence (AI) to the Rescue of CybersecurityAggregated on: Mon Nov 28 2022 18:58:53 GMT+0000 (Coordinated Universal Time) Is Cybersecurity a Major Concern? According to a survey by CWC and the Ipsos Institute, only 29% of companies consider cybersecurity to be a priority, and only one in two companies has implemented a strategy to combat cyber risks. Over the past year, one in two companies has observed a 48% increase in the number of computer attacks. View more...Disaster Recovery Guide for IT InfrastructuresAggregated on: Mon Nov 28 2022 18:13:53 GMT+0000 (Coordinated Universal Time) Modern organizations need complex IT infrastructures functioning properly to provide goods and services at the expected level of performance. Therefore, losing critical parts or the whole infrastructure can put the organization on the edge of disappearance. Disasters remain a threat to production processes. What Is a Disaster? A disaster is challenging trouble that instantly overwhelms the capacity of available human, IT, financial and other resources and results in significant losses of valuable assets (for example, documents, intellectual property objects, data, or hardware). View more...Securing Developer Tools: Argument Injection in Visual Studio CodeAggregated on: Mon Nov 28 2022 16:58:53 GMT+0000 (Coordinated Universal Time) The safety of these applications is crucial to prevent attackers from compromising the computer on which developers are working, as they could use this access to obtain sensitive information, alter source code, and further pivot into the company's internal network. This time, my team and I dive into a new vulnerability I identified in one of the most popular IDEs: Visual Studio Code. It allowed attackers to craft malicious links that, once interacted with, would trick the IDE into executing unintended commands on the victim's computer. By reporting the issue to Microsoft, who quickly patched it, our researchers helped to secure the developer ecosystem. View more...How to Not Screw Up Your Product StrategyAggregated on: Mon Nov 28 2022 16:28:53 GMT+0000 (Coordinated Universal Time) As a consultant, I have a view across many companies, so I’ve seen a lot of product strategies. Most have been problematic. Occasionally, I see an example of a product strategy that stands out. Today, I review common problems with product strategies. Then, we’ll cover how to craft a product strategy that avoids these problems. Problem: Product Strategies Take Too Long To Create Putting together a product strategy is fucking hard. And while it is important, it’s easy to defer. View more...Top 7 IoT Trends That Are Spinning High in the MarketAggregated on: Mon Nov 28 2022 16:28:53 GMT+0000 (Coordinated Universal Time) IoT refers to a system of several millions of connected devices interacting online. Individuals use mobile gadgets, wearable technology, and sophisticated robots. These gadgets use software and hardware inlays to connect with one another via the Internet. These gadgets can communicate with the surroundings through software programs thanks to sensors. The Internet of Things (IoT) has significantly advanced technology on a worldwide platform. It has been employed by companies and organizations to enhance services and provide enhanced customer experiences. Apparently, seemingly unthinkable technologies are now possible to create. View more...How Does Continuous Testing Improve DevOps?Aggregated on: Mon Nov 28 2022 13:13:53 GMT+0000 (Coordinated Universal Time) Today with new technologies emerging to serve customers, efficient delivery of the software and the ability to quickly resolve the issues that may occur are among the keys to a successful product launch. The users demand quality and seamlessly working products, and businesses want to deliver the software faster. Testing is one of the necessary procedures to ensure that the software is performing as entitled and, thus, doesn’t contain bugs. There are various approaches to executing the testing, which may depend on many factors. But as practice shows, the more often you test your product, the less time it takes to release and less budget to fix the mistakes. View more...How to Find the Best Open-Source ProjectsAggregated on: Mon Nov 28 2022 12:28:53 GMT+0000 (Coordinated Universal Time) A couple of months ago, I wanted to get my first open-source experience. What was I supposed to do? I googled "best Java open source projects" and was terrified; every website recommended Spring, Gradle, Mockito, Guava, Jenkins and etc. There's a website called GoodFirstIssue, I was really happy when I found it, but it was also a disappointment. The logical question arises why? I will not believe that someone gets his open-source experience with projects like this. Their enormous, and it will get months, in the best case, to understand how they work. So I started researching myself; I've looked at several hundred projects to choose the bests for me. Here I will share my experience and projects that I'd like to start my open-source. View more...How to Keep CEOs Deeply Invested in DevOpsAggregated on: Mon Nov 28 2022 02:13:53 GMT+0000 (Coordinated Universal Time) Customers and employees today are demanding increasingly high-quality digital user experiences. This means new DevOps teams need to implement applications securely and efficiently. As enterprise needs become more complex, so does their DevOps process. For example, web and mobile UI require multi-platform development, which means multiple processes. In addition, as the complexity of the system increases, processes need greater observability to ensure that all the necessary steps are implemented before code is released. View more...How to Predict Customer Churn Using Machine Learning, Data Science, and Survival AnalysisAggregated on: Mon Nov 28 2022 01:43:53 GMT+0000 (Coordinated Universal Time) Customer Churn and Data Science Customer churn is a major concern for any business. It is the process of customers leaving their service provider for a competitor’s service. This can be due to many different reasons, including financial constraints, poor customer experience, or just general dissatisfaction with the company. Predicting customer churn is an important part of running any business because it will allow you to plan ahead and mitigate the effects of this happening in your company. The importance of predicting customer churn comes from the fact that businesses have limited resources and cannot afford to lose customers if they want to stay profitable. If a company has too many customers leave, it will not be able to produce enough revenue and will eventually go bankrupt. However, predicting customer churn allows companies to avoid this by better understanding why customers are leaving and what they can do about it. View more...5 Vital Steps in Successfully Setting Up Your Startup QA ProcessAggregated on: Mon Nov 28 2022 01:28:52 GMT+0000 (Coordinated Universal Time) Quality assurance (QA) is the act or process of certifying that a company’s quality criteria are met. Planning, completing, and monitoring tasks are all part of managing quality in production. The monitoring aspect is the essence of what quality assurance is. The techniques and procedures that systematically monitor multiple aspects of a service or facility make up the quality assurance process. Quality assurance activities uncover and fix faults or deviations from defined standards or requirements through audits and other forms of assessment. View more...Create an HD Video Player With HDR TechAggregated on: Sun Nov 27 2022 21:43:52 GMT+0000 (Coordinated Universal Time) What Is HDR and Why Does It Matter Streaming technology has improved significantly, giving rise to higher and higher video resolutions from those at or below 480p (which are known as the standard definition or SD for short) to those at or above 720p (high definition, or HD for short). The video resolution is vital for all apps. Research that I recently came across backs this up: 62% of people are more likely to negatively perceive a brand that provides a poor-quality video experience, while 57% of people are less likely to share a poor-quality video. With this in mind, it's no wonder that there are so many emerging solutions to enhance video resolution. View more...Debugging the Perplexing - Don’t Panic!Aggregated on: Sun Nov 27 2022 21:13:52 GMT+0000 (Coordinated Universal Time) In the 10+ years, I’ve spent in software development, I’ve formulated a law of debugging: “The perplexity of a software bug and the simplicity of its probable cause are positively correlated”. Put simply, the more confounding and “impossible” a bug appears to be, the likelier it is that the underlying reason for the bug is not some nightmare compiler edge-case or hardware problem, but rather something that’s actually quite simple. Below are two cases that demonstrate the law in action. Case #1: Python My go-to example for this used to be an error in a Python project that took almost an entire day to resolve. Below is a (highly simplified) representation of the code in question: View more...How To Implement Feature Flags Using LaunchDarklyAggregated on: Sun Nov 27 2022 20:43:52 GMT+0000 (Coordinated Universal Time) Feature flags (often called feature toggles) have existed for a long time in the software development process. We have been using feature flags in some way or another without even knowing it. So, let’s first understand what exactly feature flags are before we deep dive. In simple words, feature flags help to control the code path and user flows. You might have used sometimes commenting a line in code to switch to a different logic (or If conditional flows). For example: View more...Develop a SaaS Product or Buy a SaaS Product: Which Is Better?Aggregated on: Sat Nov 26 2022 19:43:52 GMT+0000 (Coordinated Universal Time) Should you purchase software solutions to meet the business's latest demand, or do you want to build your own? Every Software as a Service (SaaS) company asks the question at some point in their business growth or expansion. Thus, the reason behind this query is simple, like an automated delivery system that can quickly be developed. But for others, it is a more complex use case that requires a dedicated developer’s team to maintain it. When the requirements are fulfilled, there are some crucial questions to ask for developing a SaaS product: View more...Cloud Migration Methodology - Top 6 Methodologies ExplainedAggregated on: Sat Nov 26 2022 19:43:52 GMT+0000 (Coordinated Universal Time) Cloud migration methodology is a high-level plan that is constructed in order to transfer data and applications from an existing on-premise server to the cloud server. Since data is what makes a company valuable these days, it is important that we have a good migration plan to move the data. In this article, we will be taking a look at the different challenges risks, and approaches of migration in cloud migration. View more...Functional Interfaces in JavaAggregated on: Sat Nov 26 2022 18:43:52 GMT+0000 (Coordinated Universal Time) Being an Object-Oriented programming language, Java cannot have independent functions as everything except for some primitive data types and methods revolves around Classes and Objects. Functions have always been a part of a class that can only be called using objects or classes. However, with the release of Java8, a new concept called function interface as well as some other features like Lambda Expressions, Time API, Stream API, etc. were released. View more...How To Handle Pseudo-Elements in CSS With Selenium?Aggregated on: Sat Nov 26 2022 18:13:52 GMT+0000 (Coordinated Universal Time) While performing UI automation testing on a webpage, we all try to work with the web elements such as buttons, texts, etc. Interaction with the WebElements in the DOM is made possible with the help of Selenium locators. However, there are some aspects of a web page that even the locators can’t manage. Pseudo-elements in CSS fall in that category. Without the correct information, these pseudo-elements can be very hard to automate. In this article, we will see how to handle pseudo-elements in CSS with Selenium WebDriver. Selenium is a powerful automation testing framework for checking complex web pages but pseudo-elements are tricky to automate. Selenium, when used in conjunction with the JavaScriptExecutor interface, helps to automate pseudo-elements. When testing your website, one must also ensure that the webpage functions as expected across various browser and OS combinations. Given that Selenium test automation is a cross-browser and cross-platform affair, you can perform automation tests at scale with the cloud-based Selenium Grid. View more...How We Reduced Online Serving Latency From 1.11s to 123.6ms With a Distributed SQL DatabaseAggregated on: Sat Nov 26 2022 04:13:51 GMT+0000 (Coordinated Universal Time) This post tells how a website with a distributed database reduced online serving latency from 1.11 s to 417.7 ms, and then to 123.6 ms. We found that some lessons learned on MySQL could be applied throughout the optimization process. But when we optimize a distributed database, we need to consider more. The OSS Insight website displays the data changes of GitHub events in real time. It's powered by TiDB Cloud, a MySQL-compatible distributed SQL database for elastic scale and real-time analytics. View more...Thinking Like a Hacker: Stealing Secrets With a Malicious GitHub ActionAggregated on: Sat Nov 26 2022 04:13:51 GMT+0000 (Coordinated Universal Time) About This Series Last time, a cryptocurrency scammer scanned Android APKs on the Internet Archive and found thousands of leaked Twitter API keys. After that, the scammer invested money into an altcoin and used the leaked API keys to promote the altcoin with hijacked Twitter accounts. The story ended with a classic pump-and-dump that made the crypto scammer millions of dollars at the expense of duped investors. In this series, we will dissect not just what an attacker can do to get access to credentials, but also what they would do after getting that initial access. We will walk through a different threat scenario in each part of the series and tell stories of malicious hackers that are either true, based on a true incident, or reasonably theoretical. View more...Edge Computing and How It's EvolvingAggregated on: Sat Nov 26 2022 03:43:51 GMT+0000 (Coordinated Universal Time) Edge computing is an emerging paradigm leading to major transformation in the networking world. The prime advantages that edge computing offers are reduced latency, bandwidth optimizations, and faster processing of data which leads to a better user experience. All depends on how time-critical the application in question is. With COVID-19 and the way the work from home culture got popular — streaming applications used for edutech, the collaborative tools, online healthcare, live trainings, and of course the OTT platforms which were a savior for people socially disconnected due to being in home isolation or taking general COVID precautions — the criticality of edge could be very well seen. All these applications could survive these tough times since the networking infrastructures across the world were mature enough to offer really low latency to these applications. Because of this, edge computing played a pivotal role getting content closer to the real user. Edge use cases were no longer confined to public safety, military uses, or manufacturing sectors — edge had a way bigger role to play in the daily lives of people. This wasn't necessarily evident to a consumer directly, but the service providers offering them network or real-world applications had a huge dependency on these emerging networking techniques. View more...A VLDB 2022 Paper: The Technologies Behind OceanBase’s 707 Million tpmC in TPC-C Benchmark TestAggregated on: Sat Nov 26 2022 03:43:51 GMT+0000 (Coordinated Universal Time) Transaction Processing Performance Council Benchmark C (TPC-C) benchmark test is by far the most credible and authoritative yardstick of the functionality and performance of online transaction processing databases in the database industry worldwide. On May 20, 2020, the TPC published the TPC-C benchmark test results of OceanBase — 707 million transactions per minute (tpmC), with the system costs per tpmC further reduced to RMB 3.98. That was the second TPC-C challenge taken by OceanBase after it hit 60.88 million tpmC on its debut in the benchmark test in October 2019. At the 48th International Conference on Very Large Databases (VLDB 2022), a database summit that just ended this September, OceanBase Senior Database Researcher Xu Quanqing presented a paper titled “OceanBase: A 707 Million tpmC Distributed Relational Database System," which introduces the architecture of OceanBase, a distributed database system, and how the TPC-C benchmark test in 2020 was performed. View more... |
|
|