News AggregatorCloud Computing Security Parameters on Various Cloud PlatformsAggregated on: Thu Dec 02 2021 22:04:12 GMT+0000 (Coordinated Universal Time) Abstract Cloud Computing is currently a consistently emerging platform in the IT industry. As of now, big tech giants are providing cloud services to various industries as it is their essential policy to secure the architecture and enterprise data. With the increase in demand for cloud computing technologies, many tech giants are providing cloud automation services like Amazon Web Service (AWS), Microsoft Azure, Google Cloud Platform (GCP), IBM, SAP, Cloudera, and more. View more...How to Set Custom Authentication with Azure API GatewayAggregated on: Thu Dec 02 2021 21:34:12 GMT+0000 (Coordinated Universal Time) This article shows an Azure API management policy sample that demonstrates how to secure API access by using an external authenticator encapsulating custom authentication logic. Before we look into the implementation of Custom authentication with Azure API Management, we shall look at API management. View more...Setting Up Apache Druid on Kubernetes in Under 30 MinutesAggregated on: Thu Dec 02 2021 20:19:12 GMT+0000 (Coordinated Universal Time) I was introduced to Apache Druid a year and a half ago. During this time, I've focused on operationalizing Apache Druid on Kubernetes (K8s). I started with Helm Charts to spin up Druid clusters in this complex distributed Druid + K8s system, but I realized Helm Charts alone were not enough. I’ve written Golang-based operators, custom controllers in Kubernetes for different use cases, and contributed various oss operators, so I was familiar with extending Kubernetes using Custom Resource Definitions (CRDs). I was thrilled to discover the Druid Operator, which had just been open-sourced in the Druid community in late 2019. The project was less than a month old when I started contributing to it. View more...How to Develop a Terraform Custom ProviderAggregated on: Thu Dec 02 2021 19:19:12 GMT+0000 (Coordinated Universal Time) Terraform Introduction and Overview Terraform is an infrastructure as code technology and it is used to create immutable infrastructure. It allows infrastructure to be expressed as code in a simple, human-readable language called HCL (HashiCorp configuration language). It supports managing resources across all the major cloud providers. Terraform is used to create, manage, and update infrastructure resources such as physical machines, VMs, network switches, containers, Kubernetes, and more. Almost any infrastructure type can be represented as a resource in Terraform. View more...Circuit Breaker And Retry with Spring Cloud Resiliance4jAggregated on: Thu Dec 02 2021 16:49:11 GMT+0000 (Coordinated Universal Time) Introduction With the growing number of services, services might need to communicate with other servers synchronously and hence become dependent on the upstream service. Any problems while communicating with the upstream services, will propagate to the downstream services. To protect the services from such problems, we can use some of the patterns to protect the service. So, today we are going to look into two of these, i.e the Circuit Breaker and the Retry mechanism. View more...Trunk-Based DevelopmentAggregated on: Thu Dec 02 2021 16:19:11 GMT+0000 (Coordinated Universal Time) When coding an application, it is important to remain in sync with the other engineers working on the project. One strategy that helps a team stay in sync with codebase changes is trunk-based development. When employing trunk-based development, the developers working on a project make all their code changes in a common branch known as "trunk". There are numerous benefits to developing with this approach, which we will discuss in this article. What Is Trunk-Based Development? Trunk-based development is a version control management practice where developers merge small, frequent updates to a core trunk or main branch. It’s a common practice among DevOps teams and part of the DevOps lifecycle, as it streamlines merging and integration phases. In fact, trunk-based development is a required practice of CI/CD. Developers can create short-lived branches with a few small commits compared to other long-lived feature branching strategies. As codebase complexity and team size grow, trunk-based development helps keep production releases flowing. View more...Employee App: Definition and Top Reasons Why Your Workplace Needs OneAggregated on: Thu Dec 02 2021 15:49:11 GMT+0000 (Coordinated Universal Time) Today, technology has become a significant part of our life. It is developing rapidly, while production methods and operation models are changing. The internet has also dramatically revolutionized many different fields of human life, but its use is inevitable. It has become a global means of communication where we can easily play, study, and communicate with many people around the world. In addition, more and more employees are working remotely, more things can be automated, businesses can be home-based, and it is not a breakthrough anymore. In this article, we will review how technology development influenced modern work life and look at the top reasons why every company should consider implementing a modern employee app to improve its productivity, organize a workflow, and get things stabilized. Influence of Technology Development on Work-Life The rapid development of technology calls for changes in many different fields. As previously mentioned, technology influences business operations and people’s everyday life. For instance, only ten years ago, no one could imagine that a pocket-sized device would provide access to any information. The knowledge that recently could be accessed through printed materials only is now available to everyone in one click. View more...Java: Creating Terabyte Sized Queues with Low-LatencyAggregated on: Thu Dec 02 2021 15:04:11 GMT+0000 (Coordinated Universal Time) Queues are often fundamental components in software design patterns. But, what if there are millions of messages received every second and multi-process consumer need to be able to read the complete ledger of all messages? Java can only hold so much information before the heap becomes a limiting factor with high-impacting garbage collections as a result, potentially preventing us from fulfilling targeted SLAs or even halting the JVM for seconds or even minutes. This article covers how to create huge persisted queues while retaining predictable and consistent low latency using open-source Chronicle Queue. View more...What Will AI Bring to the Cybersecurity Space in 2022Aggregated on: Thu Dec 02 2021 13:34:11 GMT+0000 (Coordinated Universal Time) Over the last year, artificial intelligence (AI) has become a huge part of our everyday lives, which is something of a mixed bag that has brought along a wide variety of both positive and negative influences. On one hand, there are algorithms that are designed to perform a largely marketing-related series of tasks, which are perhaps those best known to individuals outside of the technical space. Think of the algorithms curating your TikTok feed and personalizing suggestions on YouTube. The AI that calculates your fastest morning commute based on virtual maps, your vehicle, and current traffic conditions is also a fairly visible one that has had its share of media attention. A particular area, though, in which AI has become crucial is cybersecurity. Cybercriminals are increasingly harnessing AI to automate breaches and crack complex systems. Sophisticated, large-scale social engineering attacks and deep fakes are prime examples of this trend. Perhaps more subtle techniques, such as those involving AI-driven data compression algorithms, will soon become an even more important part of the space in the year to come. View more...Incident Management Process and ToolsAggregated on: Thu Dec 02 2021 13:34:11 GMT+0000 (Coordinated Universal Time) Incident management is one of the most critical processes a software development team has to get right. Service outages can be costly to the business and teams need an efficient way to respond to and resolve these issues quickly. For example, many organizations report downtime costing more than 300.000 euros per hour, according to Gartner. For some web-based services, that number can be dramatically higher. In this article, we will discuss how critical it is to have a reliable method to prioritize incidents, how to get to resolution faster, and offer better service for the end-users. What is Incident Management? First of all, what is incident management exactly? It is the process used by DevOps and software development teams to respond to an unplanned event or service interruption and restore the service to its operational state. View more...8 Misconceptions About Software DevelopmentAggregated on: Thu Dec 02 2021 13:34:11 GMT+0000 (Coordinated Universal Time) Software development is complex, and for your project to succeed, it’s essential to understand what it can and cannot do. If you remember the following ideas, your software development project is more likely to succeed. 1. There Is Only 1 Best Programming Language. Software developers tend to be fans of the programming languages they use every day. Python is a prevalent language today, but so is C++. The truth is that every programming language is used for a specific reason. That’s why we cannot say with certainty that one language is superior to another. It’s like saying that Spanish is a better language than English – it boils down to where you are. View more...0 to 100 Your DevOps Using ZeetAggregated on: Thu Dec 02 2021 13:34:11 GMT+0000 (Coordinated Universal Time) My wife (Nicole) has been by my side for several years – watching me architect, design, and develop applications. She has witnessed ideas born from cocktail napkins become part of the hundreds of articles I have written as a freelance writer. Nicole was there when I designed quite successful applications for her mother and twin sister. She is also the decorator of our home. Above my desk is a very cool reminder she had made, which simply states "everything begins with an idea." To help you visualize this piece of artwork, I took a photo using my smartphone: View more...Compile Time Safe Code - Java and JavaScript ExamplesAggregated on: Thu Dec 02 2021 12:49:11 GMT+0000 (Coordinated Universal Time) Compile Time Safe Code Is True Gem In Development World Compile Time Safe Code is the code that has a guarantee that after compilation it will work as expected. Such code is valid by design. Some languages and frameworks give Compile Type-Safe (not Time) solutions but this article covers more than just Compile Type Safetiness. Keeping your code Compile Time Safe reduces the number of potential bugs and makes code more reliable. Compile Type-Safe (Not Time Safe) Compile Type Safeness gives a guarantee that all variables are assigned to values with the correct type. Meanwhile, Compile Time Safe code is a more general notion that assures developers that code is not just type-safe but consistent in general. View more...What Is Open Policy Agent and How It WorksAggregated on: Thu Dec 02 2021 03:04:09 GMT+0000 (Coordinated Universal Time) Open Policy Agent is an open-source engine that provides a way of declaratively writing policies as code and then using those policies as part of a decision-making process. It uses a policy language called Rego, allowing you to write policies for different services using the same language. OPA can be used for a number of purposes, including: View more...Why You Can't Replace REST With GraphQLAggregated on: Thu Dec 02 2021 02:34:09 GMT+0000 (Coordinated Universal Time) When I Googled “what is GraphQL” to learn more about the network protocols, all I saw was a comparison between REST and GraphQL. Most of the conclusions said, “use GraphQL.” It felt very binary (and trendy, for that matter), which is a problem because each product and use case is unique. The fact is, whatever is newest and shiniest gets recommended more loudly. But you have to weigh the trade-offs and come up with a solution that is best for your situation. There is a general understanding that either REST is better than GraphQL or vice versa. But the truth is they both address different problems and have different strengths and weaknesses. The question isn’t necessarily which one is better to use, but which one is better to use for specific circumstances. The best way to evaluate GraphQL, REST, or any other technology is to figure out your constraints based on the problem you are going to solve. View more...Time Estimation in Software TestingAggregated on: Thu Dec 02 2021 01:34:09 GMT+0000 (Coordinated Universal Time) Striking the right balance between maintaining the software quality and taking care of the release date is one of the many challenges that we partake in the software development life cycle. As a result, it becomes extremely necessary in building the right test cases to address and resort to addressing the product risk with the adjoined test case. While this is standard practice and should be given the maximum value, dissecting each requirement with the test case will seemingly postpone the end date of delivery and subsequent launch of the product. This is where proper planning comes into action. Estimating the testing time takes proper planning and treating the SDLC as a puzzle, wherein you will have to compartmentalize each part of the puzzle and think it directly in terms of testing. Planning makes it feasible to utilize the already available resources to the best of your capabilities and also helps in predicting your long-terms as well as short-term project goals. The closer and accurate your planning data turns out to be the closer you are going to get to higher quality project management. View more...Convert Audio File into Text With Machine LearningAggregated on: Thu Dec 02 2021 01:34:09 GMT+0000 (Coordinated Universal Time) Introduction Converting audio into text has a wide range of applications: generating video subtitles, taking meeting minutes, and writing interview transcripts. Machine learning makes doing so easier than ever before, converting audio files into meticulously accurate text, with correct punctuation as well! Development Preparations For details about configuring the Maven repository and integrating the audio file transcription SDK, please refer to the Development Guide. View more...Short-Circuiting in JavaScriptAggregated on: Thu Dec 02 2021 01:04:09 GMT+0000 (Coordinated Universal Time) In JavaScript, short-circuiting refers to the partial evaluation of expressions to avoid unnecessary computation. This blog post describes the short-circuiting operators and assignments in JavaScript and how to use them. Short-Circuiting Operators: &&, ||, and ?? Short-circuiting operators only evaluate the right side of an expression when necessary. View more...A Schema Architecture for MicroservicesAggregated on: Thu Dec 02 2021 00:19:09 GMT+0000 (Coordinated Universal Time) Message and Event payload validation has been a rather thorny problem ever since extensible data structures (XML, JSON, YAML...) started to be used at scale. In fact, very little progress has been made since the good old days of DTDs. Schema definition languages such as XML-schema, json-schema, or even the OpenAPI schema are unfamiliar to most developers and often result in a rather anemic validation set of rules, leading to a perceived low value, and therefore a lack of interest. There are two key problems in a schema architecture: View more...Machine Learning Interview With Gema Parreño, Lead Data Scientist at ApiumhubAggregated on: Wed Dec 01 2021 20:04:09 GMT+0000 (Coordinated Universal Time) Today we have interviewed our Gema Parreño, Lead Data Scientist at a software development company, Apiumhub, where she develops Data-Driven Solutions. She is passionate about the intersection of machine learning and games, and has had her own startup, contributed to the open source space in the StarCraft machine learning project, and had an experience at Google Brain for Stadia. Gema gives a talk about Mempathy as an AI Safety and Alignment opportunity, and we wanted to dig deeper and find out more about it, as well as how the idea arose to use it for implementation of Safety and Alignment techniques. View more...Accelerating Candidate Generation in Recommender Systems Using Milvus Paired With PaddlePaddleAggregated on: Wed Dec 01 2021 17:49:09 GMT+0000 (Coordinated Universal Time) If you have experience developing a recommender system, you are likely to have fallen victim to at least one of the following: The system is extremely slow when returning results due to the tremendous amount of datasets. Newly inserted data cannot be processed in real-time for search or query. Deployment of the recommender system is daunting. This article aims to address the issues mentioned above and provide some insights for you by introducing a product recommender system project that uses Milvus, an open-source vector database, paired with PaddlePaddle, a deep learning platform. This article sets out to briefly describe the minimal workflow of a recommender system. Then it moves on to introduce the main components and the implementation details of this project. The Basic Workflow of a Recommender System Before going deep into the project itself, let's first take a look at the basic workflow of a recommender system. A recommender system can return personalized results according to unique user interests and needs. To make such personalized recommendations, the system goes through two stages, candidate generation, and ranking. The first stage is candidate generation, which returns the most relevant or similar data, such as a product or a video that matches the user profile. During candidate generation, the system compares the user trait with the data stored in its database and retrieves those similar ones. Then during ranking, the system scores and reorders the retrieved data. Finally, those results on the top of the list are shown to users. In our case of a product recommender system, it first compares the user profile with the characteristics of the products in inventory to filter out a list of products catering to the user's needs. Then the system scores the products based on their similarity to user profile, ranks them, and finally returns the top 10 products to the user. System Architecture The product recommender system in this project uses three components: MIND, PaddleRec, and Milvus. MIND MIND, short for "Multi-Interest Network with Dynamic Routing for Recommendation at Tmall", is an algorithm developed by Alibaba Group. Before MIND was proposed, most of the prevalent AI models for recommendation used a single vector to represent a user's varied interests. However, a single vector is far from sufficient to represent the exact interests of a user. Therefore, the MIND algorithm was proposed to turn a user's multiple interests into several vectors. Specifically, MIND adopts a multi-interest network with dynamic routing for processing multiple interests of one user during the candidate generation stage. The multi-interest network is a layer of multi-interest extractors built on a capsule routing mechanism. It can be used to combine a user's past behaviors with his or her multiple interests, to provide an accurate user profile. The following diagram illustrates the network structure of MIND. To represent the trait of users, MIND takes user behaviors and user interests as inputs and then feeds them into the embedding layer to generate user vectors, including user interest vectors and user behavior vectors. Then user behavior vectors are fed into the multi-interest extractor layer to generate users' interest capsules. After concatenating the user interest capsules with user behavior embeddings and using several ReLU layers to transform them, MIND outputs several user representation vectors. This project has defined that MIND will ultimately output four user representation vectors. On the other hand, product traits go through the embedding layer and are converted into sparse item vectors. Then each item vector goes through a pooling layer to become a dense vector. When all data are converted into vectors, an extra label-aware attention layer is introduced to guide the training process. PaddleRec PaddleRec is a large-scale search model library for a recommendation. It is part of the Baidu PaddlePaddle ecosystem. PaddleRec aims to provide developers with an integrated solution to build a recommendation system in an easy and rapid way. View more...Five Data Quality Tools You Should KnowAggregated on: Wed Dec 01 2021 17:49:09 GMT+0000 (Coordinated Universal Time) Data quality ensures that an organization’s data is accurate, consistent, complete, and reliable. The quality of the data dictates how useful it is to the enterprise. Ensuring data quality—especially with the sheer amount of data available to today’s enterprises—is a tremendously complex beast. To do this effectively, the modern enterprise relies on data quality tools. In this post, we will consider five data quality tools and see how they can help you in your data journey: View more...Edge Medical Diagnosis - Example architecture with GitOpsAggregated on: Wed Dec 01 2021 11:49:09 GMT+0000 (Coordinated Universal Time) In our previous article from this series we talked about the example predictive analysis architecture found in an edge medical diagnosis solution for the healthcare industry. The process was laid out how we approached the use case and how portfolio solutions are the base for researching a generic architecture. It continued by discussion how we approached the use case by researching successful customer portfolio solutions as the basis for a generic architecture. View more...Database Sizing and Capacity Planning: A Step-by-Step ExampleAggregated on: Wed Dec 01 2021 11:04:09 GMT+0000 (Coordinated Universal Time) Anyone steeped in the art of database capacity planning knows that there is often far more to it than meets the eye. It requires operational knowledge and experience of the systems involved. My article on Why Database Sizing Is So Hard? provides some general guidance on how to approach the challenge. But how does it apply in real-world scenarios? Here, let’s walk through a very specific example of how to estimate the workload and operational margins for a fictional service, then calculate the database resources needed to handle this workload. View more...Securing Serverless Architectures [Infographics]Aggregated on: Wed Dec 01 2021 05:19:09 GMT+0000 (Coordinated Universal Time) Serverless reduces a lot of operational burdens, but a secure architecture is still your responsibility. From web threats over IAM principles to auditing and monitoring, learn more about securing serverless architectures in this 2-parter infographic: View more...DevOps Services Pricing: AWS vs Azure vs Google CloudAggregated on: Wed Dec 01 2021 01:49:09 GMT+0000 (Coordinated Universal Time) Cloud computing has rapidly become a strong driving factor for companies worldwide, as software is transferred out of in-house data centers in an effort to modernize, reduce costs, and boost agility. Businesses more and more use it as an all-in-one solution, a model in which a third-party supplier comprises and manages a customer’s fundamental infrastructure. Among the most used and popular DevOps services, namely Amazon Web Services, Azure DevOps services, and Google Cloud services, there is a battle going on in the market. Based on Statista analytics, Amazon Web Services, the most prominent provider in the cloud computing industry, held 32% of the total market in the 3rd quarter of 2021. Microsoft Azure comes in 2nd place with a 21% market share, followed by Google Cloud with an 8%. Therefore, in the 3rd quarter of 2021, these three cloud suppliers are undoubtedly leading within the statistics. View more...Automate Data Transformation Using IBM App ConnectAggregated on: Wed Dec 01 2021 00:49:09 GMT+0000 (Coordinated Universal Time) IBM App Connect has introduced a new Artificial Intelligence (AI) feature that is capable of auto-generating data transformation expressions, and that helps accelerate your integration flow-building experience. Data Mapping remains a fundamental part of integration development, but it takes time. An increasing number of applications, lack of naming standards, and nested field structures further compound the complexity for the integration developers. Once the mapping is done, data transformation is the next challenge for the users since each application expects data to be in a certain format. Also, while building integration flow, developers need to understand the format of the source and target data field and come up with transformation expressions that can change data from source to target format. This exercise is done manually and it takes a lot of time and skills to build such transformation expression. View more...Cordova: Communicating Between JavaScript and JavaAggregated on: Wed Dec 01 2021 00:49:09 GMT+0000 (Coordinated Universal Time) Background Cordova is an open-source cross-platform development framework that allows you to use HTML and JavaScript to develop apps across multiple platforms, such as Android and iOS. So how exactly does Cordova enable apps to run on different platforms and implement the functions? The abundant plugins in Cordova are the main reason, and free you to focus solely on app functions, without having to interact with the APIs at the OS level. Introduction Here, I'll use the Cordova plugin in HUAWEI Push Kit as an example to demonstrate how to call Java APIs in JavaScript through JavaScript-Java messaging. The following implementation principles can be applied to all other kits, except for Map Kit and Ads Kit (which will be detailed later), and help you master troubleshooting solutions. View more...Vicious (Test) Mockery of a Perl ModulinoAggregated on: Wed Dec 01 2021 00:49:09 GMT+0000 (Coordinated Universal Time) Over the past two years, I've gotten back into playing Dungeons & Dragons, the famous tabletop fantasy role-playing game. As a software developer and musician, one of my favorite character classes to play is the bard, a magical and inspiring performer or wordsmith. The list of basic bardic spells includes Vicious Mockery, enchanting verbal barbs that have the power to psychically damage and disadvantage an opponent even if they don't understand the words. (Can you see why this is so appealing to a coder?) Mocking has a role to play in software testing as well, in the form of mock objects that simulate parts of a system that are too brittle, too slow, too complicated, or otherwise too finicky to use in reality. They enable discrete unit testing without relying on dependencies external to the code being tested. Mocks are great for databases, web services, or other network resources where the goal is to test what you wrote, not what's out in "the cloud" somewhere. View more...2 Ways to Make a UUID Generator for PostgresAggregated on: Wed Dec 01 2021 00:04:09 GMT+0000 (Coordinated Universal Time) Postgres performs better than some other databases because it supports concurrent write operations without the need of read/write locks. Because it is completely ACID-compliant and provides transaction isolation and snapshots, many applications are using Postgres these days. Unfortunately, while PostgreSQL is great for storing and comparing UUID data, it lacks capabilities for creating UUID values in its core. Instead, it relies on third-party modules to create UUIDs using specified techniques. In this article, you'll learn about the PostgreSQL UUID data type and how to generate UUID values with examples utilizing various functions and modules. What Is a UUID? UUID stands for Universal Unique Identifier, defined by RFC 4122 and other related standards. A UUID is a series of lower-case hexadecimal digits separated by hyphens. UUIDs are a combination of 36-character sequences of numbers, letters, and dashes that are intended to be globally unique. View more...Artificial Intelligence Vs Software Engineering: What Is the Difference?Aggregated on: Tue Nov 30 2021 20:49:09 GMT+0000 (Coordinated Universal Time) Artificial Intelligence vs. Software Engineering While Artificial intelligence (AI) and Software Engineering are two major branches of computer sciences, experts and professionals have consistently acknowledged their differences and the roles they both play in the advancements of computer efficiency generally. However, while there are differences between the two fields, people have difficulty telling where they differ. Therefore, this blog will outline the differences between AI and Software Engineering to help you know the varying metrics. Difference Between Software Engineering and Artificial Intelligence Definitions and Expected Outcomes The biggest difference between software engineering and Artificial intelligence is their outcomes and the tasks they set out to achieve. View more...Data Governance and Data ManagementAggregated on: Tue Nov 30 2021 20:49:09 GMT+0000 (Coordinated Universal Time) Introduction Enterprises that don’t embrace data or are late to the party face serious consequences compared to early adopters. As to talking about good data practices, most people associate the word with only a few of the multitude of practices that constitute a successfully run, data-driven enterprise. Besides data analysis, data management is what readily comes to mind. Though equally universal — and perhaps are even more critical — data practice is the practice of data governance. View more...How to Use Amazon SQS in a Spring Boot AppAggregated on: Tue Nov 30 2021 20:49:09 GMT+0000 (Coordinated Universal Time) In this blog, you will learn how to use Amazon Simple Queue Service (SQS) in a Spring Boot App. You will use the AWS SDK for Java for this purpose. Most of the SQS features, which can also be executed manually via the AWS console, will be covered within this blog. 1. Introduction Amazon Simple Queue Service (SQS) is a fully managed message queuing service that enables you to decouple and scale your applications. It is a fully managed service, so you will not have to take care of managing the service yourself. You can create queues, send and receive messages, send messages to a Dead Letter Queue when they could not be processed successfully, etc. View more...Can You Refactor JavaScript Safely Without Test Coverage?Aggregated on: Tue Nov 30 2021 20:04:09 GMT+0000 (Coordinated Universal Time) Introduction The conventional wisdom is that you should have good test coverage before refactoring your code. Making mistakes during refactoring will introduce defects in the software if they are not caught during testing. Such regression defects can annoy users, break the software, and even lead to customers abandoning the product. The need for automated testing is especially high for JavaScript. In a dynamic language with functional constructs like JavaScript, it is harder to detect breakages statically. Additionally, JavaScript has many language details and quirks that are not well known or easy to remember. View more...Embracing invokedynamic To Tame Class Loaders in Java AgentsAggregated on: Tue Nov 30 2021 17:19:09 GMT+0000 (Coordinated Universal Time) One of the nicest things about Byte Buddy is that it allows you to write a Java agent without manually having to deal with byte code. To instrument a method, agent authors can simply write the code they want to inject in pure Java. This makes writing Java agents much more accessible and avoids complicated onboarding requirements. After the first successful experiments, agent authors often get hit by a wall of complexity that the JVM throws at them: class loaders (OSGi, oh my!), class visibility, dependence on internal APIs, classpath scanners, and version conflicts to name a few. View more...Increase Security with Ephemeral Access Control [Webinar Sign-up]Aggregated on: Tue Nov 30 2021 17:19:09 GMT+0000 (Coordinated Universal Time) Workforces today are dynamic, with employees, contractors, freelancers, and other third parties constantly changing roles, projects, or moving companies. This makes it difficult for IT teams to manage access controls in a timely manner and opens the door for hackers to take advantage of over-provisioned users and accounts that should have been deactivated. To counteract this issue, ephemeral access controls set temporary access rights that remove the need to manually revoke credentials. Join us on December 7th and you will learn about the security benefits of switching to an ephemeral access control model and how this can help eliminate the burden placed on IT and Security teams. Importantly, we will discuss what ephemeral access control solutions exist today that can be integrated into your current security stack. View more...Streamlining Application Portfolio Modernization ProjectsAggregated on: Tue Nov 30 2021 16:49:09 GMT+0000 (Coordinated Universal Time) Increased Kubernetes Adoption Reveals a Need for an Open-Source Solution There seems to be no doubt about Kubernetes’ victory in what was known as the “Container Wars” back in the day. As CNCF’s Cloud Native Survey 2020 states, “91% of respondents report using Kubernetes, 83% of them in production,” demonstrating that the platform has become a defacto standard for organizations implementing a hybrid cloud strategy. Along with that, containerization is making its way as most enterprises are adopting it for their production workloads. The latest Gartner forecast about Container Management Software and Services reveals that “by 2022, more than 75% of global organizations will be running containerized applications in production.” Both insights combined can lead us to conclude that Kubernetes is becoming the default platform for application deployment, increasing organizations’ needs for methodologies and tools that could ease adoption and migration. Leveraging the advantages that the cloud native model provides requires some degree of adaptation on the target workloads to be migrated, leading to application modernization becoming a hot topic among large enterprises. According to Verified Market Research, “Global Application Modernization Market was valued at USD $7.74 billion in 2018 and is projected to reach USD $30.59 billion by 2026, growing at a CAGR of 18.7 % from 2019 to 2026.” There seems to be a problem with the transformation throughput though, since “the bottleneck will be the speed at which applications can be refactored and/or replaced,” as stated by Michael Warrilow, research vice president at Gartner, on the presentation of their Container Management forecast. View more...When Big Data Goes Bad: Rehabilitating Data QualityAggregated on: Tue Nov 30 2021 11:49:09 GMT+0000 (Coordinated Universal Time) We live in a data-driven world. In the last ten years, the term Big Data came to the forefront of technology—despite the fact that the term was popularized by John Mashey over twenty years ago. The Big Data quest has prompted corporations to employ teams that use mathematical analysis and inductive statistics to reveal relationships and dependencies. The mission for this subset of Big Data technologists is to use data to predict outcomes and behaviors, leading to a corporate advantage. View more...Digital Resilience Requires Changes In The Taxonomy Of Business IT SystemsAggregated on: Tue Nov 30 2021 11:04:09 GMT+0000 (Coordinated Universal Time) We are living in a hyper-digitally dynamic ecosystem. As we are moving towards a digitally dependent future, the need for Digital Resilience is increasing rapidly. Digital Resilience helps companies by providing several ways for businesses to use digital tools and systems to recover from crises quickly. Today, digital resilience and supply chain resilience no longer imply merely the ability to manage risk. It now means that managing risk means being better positioned than competitors to deal with disruptions and even gain an advantage from them. View more...Debugging the Technical Interview - Methods and CheatingAggregated on: Tue Nov 30 2021 10:34:09 GMT+0000 (Coordinated Universal Time) The headline caught my attention right away “ I was shocked to catch a candidate cheating in an online interview ”... How the hell do you cheat in an interview? Does Cyrano de Bergerac) whisper the answer from outside the camera? Well, close enough. The candidate was googling answers and copying them into a shared screen, pretending this was his code. Hiding this is lying. That’s never OK. But this really reminded me of a tweet I read ages ago which unfortunately I can’t find… It went something like this: View more...Data Stream ProcessingAggregated on: Tue Nov 30 2021 09:49:09 GMT+0000 (Coordinated Universal Time) Today's data is generated from an infinite number of sources - IoT sensors, database servers, application logs. It is almost impossible to regulate the structure, data integrity, or control the amount or speed of data generated. While traditional solutions are built to ingest, process, and structure data before it can be acted upon, streaming data architecture adds the ability to consume, persist to storage, enrich, and analyze data in motion. View more...Port Management in Your Local Kubernetes ClusterAggregated on: Tue Nov 30 2021 09:19:09 GMT+0000 (Coordinated Universal Time) Most of my talks contain a demo. A fair share of these demos require multiple "infrastructure" dependencies: a database (or more), Elasticsearch, you name it. To ease my setup and avoid stuffing my machine, I use either Docker Compose or Kubernetes locally on my Mac. Both rely on Docker Desktop. To expose a cluster Service on my host, I use nodePort. Hence, I set a dedicated node port for each service. I need to remember each of them for each demo. Worse, services might be (are) declared across different manifest files. View more...Developer Productivity Masterclass: Interview With Leonid BlouvshteinAggregated on: Tue Nov 30 2021 04:34:08 GMT+0000 (Coordinated Universal Time) On December 7th we’ll host a free master class with Mykyta Protsenko, Senior Software Engineer at Netflix. Michael Wood, Field CTO, HashiCorp. Ryan Menezez, Software Engineering Manager, Meta. And Leonid Blouvshtein, CTO of Lightrun. I got a chance to grab Leonid and make him sit down for this quick interview... View more...Hiring the Top Mobile App Developers: Do's and Don'tsAggregated on: Tue Nov 30 2021 00:19:08 GMT+0000 (Coordinated Universal Time) We are all surrounded by technologies and advancements in today's fast-paced era, and mobile apps are one of them. In today's competitive market, all firms recognize that simply having a web presence is insufficient. And that's why they're relying more on mobile apps these days. According to an app development statistic, mobile applications are predicted to generate over $935 billion in revenue by 2023. View more...Working Together as Embedded Engineering TeamsAggregated on: Tue Nov 30 2021 00:19:08 GMT+0000 (Coordinated Universal Time) What Is the Embedded Model? Companies need specialists, and specialists often do their work with people outside their department. For example, all these specialties work with software engineers: Designers Product managers Site reliability engineers (SREs) Quality engineers (QA) Application security engineers Architects Specialists often apply the most leverage when they work next to engineers. For example, an SRE might help a team improve its monitoring. They might help even more if they help the team to understand how to do monitoring themselves. A designer might work side by side with an engineering team. They design future features and collaborate on current features. View more...Adding a Custom Domain and SSL to AWS EC2Aggregated on: Tue Nov 30 2021 00:19:08 GMT+0000 (Coordinated Universal Time) In our previous article, we Dockerized our Node.js server, pushed that container image to AWS ECR, and then launched an EC2 instance with that container running inside. With our network and security group configured, we could send HTTP requests to our EC2 instance (at port 80) and receive responses from our server. For our next trick, let's set up a custom domain name and make our server accessible via HTTPS. Here are the steps we're going to take: View more...How to Use WebSockets with AWS ServerlessAggregated on: Tue Nov 30 2021 00:19:08 GMT+0000 (Coordinated Universal Time) In this guide, we are going to see how we can use WebSockets using an AWS serverless framework with NodeJs. At the end of this guide, we will have an application where we can create a chat room and other users can join our room to chat with each other in a custom room. I made the procedure very simple to follow, and at the end of this post, you will also get a link to the Github repository for the code. Project Setup The first thing is to set up the project folder and install the required project dependencies by creating a new folder and running the below commands in the root of the project folder. View more...XPath: Axis Steps, Node Tests, Unabbreviated SyntaxAggregated on: Tue Nov 30 2021 00:04:08 GMT+0000 (Coordinated Universal Time) A lot of literature presents XPath as though using it is rather like navigating a filesystem: the tags' identifiers are completely taken for granted, and shorthand like ., .., or // often is introduced early on. This article demonstrates exactly how to use XPath to the exclusion of shorthand: which is to say, solely by means of axis specifiers and node tests, and with the use of identifiers confined to predicates. The XML we'll work on is simple on its face. As a former bookseller, I've made it personal: View more...A Beginner's Guide to High-Performance Computing in PythonAggregated on: Mon Nov 29 2021 23:34:09 GMT+0000 (Coordinated Universal Time) Ever since the Python programming language was born, its core philosophy has always been to maximize the readability and simplicity of code. In fact, the reach for readability and simplicity is so deep within Python's root that, if you type import this in a Python console, it will recite a little poem: Beautiful is better than ugly. Explicit is better than implicit. Simple is better than complex. The complex is better than complicated. The flat is better than nested. Sparse is better than dense. Readability counts.... Simple is better than complex. Readability counts. No doubt, Python has indeed been quite successful at achieving these goals: it is by far the most friendly language to learn, and an average Python program is often 5 to 10 times shorter than equivalent C++ code. Unfortunately, there is a catch: Python's simplicity comes at the cost of reduced performance. In fact, it is almost never surprising for a Python program to be 10 to 100 times slower than its C++ counterpart. It thus appears that there is a perpetual trade-off between speed and simplicity, and no programming language shall ever possess both. But don't you worry, all hope is not lost. Taichi: Best of Both Worlds The Taichi Programming Language is an attempt to extend the Python programming language with constructs that enable general-purpose, high-performance computing. It is seamlessly embedded in Python, yet can summon every ounce of computing power in a machine -- the multi-core CPU, and more importantly, the GPU. We'll show an example program written using taichi. The program uses the GPU to run a real-time physical simulation of a piece of cloth falling onto a sphere, and simultaneously renders the result. Writing a real-time GPU physics simulator is rarely an easy task, but the Taichi source code behind this program is surprisingly simple. The remainder of this article will walk you through the entire implementation, so you can get a taste of the functionalities that taichi provides, and just how powerful and friendly they are. Before we begin, take a guess of how many lines of code this program consists of. You will find the answer at the end of the article. Algorithmic Overview Our program will model the piece of cloth as a mass-spring system. More specifically, we will represent the piece of cloth as an N by N grid of point-masses, where adjacent points are linked by springs. The following image, provided by Matthew Fisher, illustrates this structure: The motion of this mass-spring system is affected by 4 factors: Gravity Internal forces of the springs Damping Collision with the red ball in the middle For the simplicity of this blog, we ignore the self-collisions of the cloth. Our program begins at time t = 0. Then, at each step of the simulation, it advances time by a small constant dt. The program estimates what happens to the system in this small period of time by evaluating the effect of each of the 4 factors above, and updates the position and velocity of each mass point at the end of the timestep. The updated positions of mass points are then used to update the image rendered on the screen. Getting Started Although Taichi is a programming language in its own right, it exists in the form of a Python package, and can be installed by simply running pip install taichi. To start using Taichi in a python program, import it under the alias ti: import taichi as ti The performance of a Taichi program is maximized if your machine has a CUDA-enabled Nvidia GPU. If this is the case, add the following line of code after the import: ti.init(arch=ti.cuda) If you don't have a CUDA GPU, Taichi can still interact with your GPU via other graphics APIs, such as ti.metal, ti.vulkan, and ti.opengl. However, Taichi's support for these APIs are not as complete as its CUDA support, so, for now, use the CPU backend: ti.init(arch=ti.cpu)And don't worry, Taichi is blazing fast even if it only runs on the CPU. Having initialized Taichi, we can start declaring the data structures used to describe the mass-spring cloth. We add the following lines of code: Python N = 128 x = ti.Vector.field(3, float, (N, N)) v = ti.Vector.field(3, float, (N, N)) View more...Build Your IoT Application in a DayAggregated on: Mon Nov 29 2021 23:04:08 GMT+0000 (Coordinated Universal Time) IoT Application development is required today at all levels. But for people with very low coding knowledge, it is not easy to build/develop what is needed for them. With MQTTRoute, an IoT application framework with an inbuilt MQTT Broker, any early adopters or budding developers can develop, host and manage their application easily. This just leaves their development challenge for their IoT Server application. MQTT Broker comes with a default user interface, however, visualization needs to be built specific for each distinct vertical. We recently run an internal hackathon at Bevywise to build applications over our framework. Interestingly, we were able to build an IoT application in a day. The application built was an Industrial Furnace Monitoring. This blog portrays the hacks used to build the application. IoT Application for Industrial Temperature Monitoring Monitoring and control of the temperature of the furnaces is crucial with respect to its usage in the industries as it directly affects the quality of the product that is being created. We have created a simulated device using IoT Simulator similar to a monitoring edge device that pushes data to the MQTT Broker. The goals set for the application were: View more... |
|
|