News Aggregator


Cloud Data Warehouse Comparison: Redshift vs. BigQuery vs. Azure vs. Snowflake for Real-Time Workloads

Aggregated on: Sat Oct 16 2021 21:05:21 GMT+0000 (Coordinated Universal Time)

Data helps companies take the guesswork out of decision-making. Teams can use data-driven evidence to decide which products to build, which features to add, and which growth initiatives to pursue. And, such insights-driven businesses grow at an annual rate of over 30%. But, there’s a difference between being merely data-aware and insights-driven. Discovering insights requires finding a way to analyze data in near real-time, which is where cloud data warehouses play a vital role. As scalable repositories of data, warehouses allow businesses to find insights by storing and analyzing huge amounts of structured and semi-structured data.

View more...

Benchmark Your Apps Against the AWS Well-Architected Framework

Aggregated on: Sat Oct 16 2021 20:35:21 GMT+0000 (Coordinated Universal Time)

AWS introduced best practices to review and improve traditional or proposed architectures through its widely renowned AWS Well-Architected Framework. The framework introduces five pillars where each pillar is composed of separate practices for a better application and workload architecture to solve challenges many customers were having. Those challenges involve a lack of internal knowledge, rightsizing cloud environments, reducing costly overheads, a lack of automation, and executing AWS best practices. The Well-Architected framework is gaining popularity among clients seeking infrastructure performance that only keeps getting better over time. The supporting Well-Architected Review was created to improve the customer experience and help sharpen up AWS environments. The best way to proactively utilize this framework is for building secured, efficient, and reliable application infrastructure. Additionally, consultants help companies through the AWS Partner Network (APN) to facilitate this framework by evaluating current architectures to make design changes through a Well-Architected Review.

View more...

Machine Learning and React Native: Feasible for Web Development?

Aggregated on: Sat Oct 16 2021 20:35:21 GMT+0000 (Coordinated Universal Time)

Unless you have been living under a rock, there is no way you have not heard of at least artificial intelligence. Of course, this is because of the potent tool it has proven to be over the past decade. This popularity, then, led to the emergence of machine learning as well as deep learning. Now, they are both technically subsets of artificial intelligence, but the plethora of their advantages have ensured they were each able to establish their distinct identities in the market. Now, machine learning serves to help systems use input data to improve themselves.  Meanwhile, deep learning, which involves the use of algorithms based on the human brain’s structure and function, is enabling the achievement of unparalleled results in computer vision, ML, etc.

View more...

Incident Review For the Facebook Outage

Aggregated on: Sat Oct 16 2021 20:05:21 GMT+0000 (Coordinated Universal Time)

Marking a highly unusual state of events, Facebook, Instagram, WhatsApp, Messenger, and Oculus VR were down simultaneously around the world for an extended period of time Monday.   The social network and some of its key apps started to display error messages before 16:00 UTC. They were down until 21:05 UTC, when things began to gradually return to normality.  

View more...

Why Don't Developers Write More Tests?

Aggregated on: Sat Oct 16 2021 20:05:21 GMT+0000 (Coordinated Universal Time)

I regularly speak at conferences about testing microservices, and one of the first questions I ask attendees is whether they write tests or not. The room is usually split 50-50 between developers who write tests for their code and those who do not. This disparity gets more pronounced when I give guest lectures at coding bootcamps where I’ve found that fewer than 1 in 10 grads actually know how to write a unit test. My anecdotal observations have been backed up by surveys as well. Diffblue found 42% of developers skip writing tests and Stack Overflow found 37% of developers don’t write tests for their code at work.

View more...

5 Things to Consider Before You Build Your App

Aggregated on: Sat Oct 16 2021 20:05:21 GMT+0000 (Coordinated Universal Time)

When mobile app development came on the market, it was a game-changer. It allowed for an unprecedented level of mobile optimization that has never been seen before. With mobile apps now being one of the most popular ways to not just run your business but also promote and advertise it, many people are considering getting into mobile app development themselves. However, there are several things to think about before developing an app to ensure that you want to pursue it in the long run. When you're making mobile apps, you must have a clear idea about what mobile platform it will be on. Will it be a native app, a hybrid app, or even a progressive web app (PWA)? Then there's the dilemma of whether to use an existing mobile development provider or not. In this blog post, we'll cover these important factors that you should think about before commencing mobile development and building your app!

View more...

The Performance Impact of java.lang.System.getProperty()

Aggregated on: Sat Oct 16 2021 20:05:21 GMT+0000 (Coordinated Universal Time)

‘java.lang.System.getProperty()’ is a common API used by Java developers to read the System properties that are configured during application startup time. i.e. when you pass “-DappName=buggyApp” as your application’s startup JVM argument, the value of the ‘appName’ system property can be read by invoking the ‘java.lang.System.getProperty()’. Example: Java   public static String getAppName() { String app = System.getProperty("appName");   return app; }

View more...

The Ultimate JSON Library: JSON.simple vs. GSON vs. Jackson vs. JSONP

Aggregated on: Sat Oct 16 2021 19:35:21 GMT+0000 (Coordinated Universal Time)

JSON is the accepted standard these days for transmitting data between servers and web applications. We often don’t think about the JSON libraries we use, but there are some differences between them. JSON is often used to transport and parse big files. This is a scenario that is common in data processing applications running in Hadoop or Spark clusters. Given the size of these files, you can be looking at significant differences in parsing speed between libraries.

View more...

Allow Google Account Sign Ins Without a GMS Phone

Aggregated on: Sat Oct 16 2021 19:05:21 GMT+0000 (Coordinated Universal Time)

If users have not installed GMS on their phones, they cannot directly sign in to your app using a Google account. In this case, you can let them sign in to your app in web mode by obtaining the access token for sign-in authentication from Google. The procedure is as follows: Sign in to the Google Play Console, click Credentials, and create an OAuth 2.0 client ID with the Type set to Web application.

View more...

Micronaut, Quarkus, and Spring Boot Help You Develop Native Java Apps

Aggregated on: Sat Oct 16 2021 18:35:21 GMT+0000 (Coordinated Universal Time)

For decades, Java has been able to invoke native programs on an operating system. JNI (Java Native Interface) and JNA (Java Native API) are commonly used to invoke native programs (Java Native Access). In recent years, Java has gained the ability to run JVM apps natively. In other words, the JVM apps are binary executables with no dependency on the Java runtime. Now Java apps start up in milliseconds, instead of seconds. seconds. This is a game-changer if you're scaling up to accommodate millions of requests, while saving money by adopting a serverless environment. For years, developers have chosen to use serverless environments with Node.js, Python, and Go. The ability to go serverless with Java (or Kotlin) brings the opportunity to an important developer community.

View more...

Getting Started With Kubernetes In 2 Days

Aggregated on: Sat Oct 16 2021 15:50:21 GMT+0000 (Coordinated Universal Time)

Kubernetes (commonly abbreviated as K8s) is an open-source platform for container orchestration that we use extensively at Shipyard. It automates many of the tasks involved in maintaining a container-based app, such as deploying, scaling, load-balancing, and auto-scaling. Kubernetes Done Wrong Kubernetes is a major asset for modern container management and has streamlined deployment for thousands of companies. However, it is infamous for its steep learning curve. Simply put, Kubernetes is difficult to get right.

View more...

Java: On Its Deathbed Or More Alive Than Ever?

Aggregated on: Sat Oct 16 2021 14:35:21 GMT+0000 (Coordinated Universal Time)

Introduction You can often hear statements that "Java is dying" and all modern people should switch to modern languages like Go as soon as possible. They say that it will be good with them, but it will be bad with old languages that everyone is about to give up. But is this true? You can see two different variants in the "pre-death" statements. Some people say "Java is dying" quite literally: the time for the popularity of the language has passed, fewer and fewer people need it, and those remaining people are about to abandon it. Others believe that Java may be all right in terms of popularity, but technologically it is stuck in the last century, so it is not respectable to write in it now. 

View more...

Fluent Assertions Reloaded

Aggregated on: Sat Oct 16 2021 11:50:21 GMT+0000 (Coordinated Universal Time)

If you’re not using fluent assertions in your tests yet and just rely on basic JUnit assertions, you might be missing out on a simple but very effective tool to write high-quality test code. The article starts with a short recap about the virtues of fluent assertions and how they address the shortcomings of basic assertions. But while very much in favor of fluent assertion I think that current implementations don’t realize their full power: Problems are demonstrated in AssertJ, the main fluent assertion library for Java. Finally, I present a new solution to overcome these issues.

View more...

Containers are Here to Stay

Aggregated on: Sat Oct 16 2021 11:35:21 GMT+0000 (Coordinated Universal Time)

Containers are not a fad. They’re never overkill for any project and they simplify many aspects of development, even when running locally. With a wide selection of relevant tools and resources, there has never been a better time than now to implement containers in your organization and get ahead of the curve. What Are Containers? Containers are portable, self-sufficient, standardized units that store all code, assets, and dependencies of a program. They can be shared and run on virtually any hardware. Containerization has been around for years, although it has recently been gaining more traction with the advent of Docker. Many organizations are recognizing the value of managing their code in a simplified, shareable, and maintainable way. What does this mean for you and your organization?

View more...

Goal Setting: Get a Clear Fix on Where You Want to Go

Aggregated on: Sat Oct 16 2021 10:50:21 GMT+0000 (Coordinated Universal Time)

Everyone likes to achieve success at work, but very few take the time to define what "success" means to them. Does it involve an increase in salary or acquiring a new skill? Is it receiving rewards and recognition for your work or getting an opportunity to work on the big bet? Do you feel successful when mentoring others or when you are able to solve a tough problem on your own? To be successful, you need to define it first — something that drives all your actions. Something that gives you guidelines and boundaries to keep you on track. Something that helps you plan your progress. Something that gives you direction when you feel lost. And what is that something? A top-level goal. A consciously adopted goal is not only important, it's the only way to act with intention instead of reacting to whatever life throws your way.

View more...

What Managed Kubernetes Service is Best for SREs?

Aggregated on: Sat Oct 16 2021 10:35:21 GMT+0000 (Coordinated Universal Time)

Kubernetes in general is a boon for SREs. By making it easy to manage microservices-based apps at scale, Kubernetes helps SRE teams achieve reliability goals for complex, cloud-native environments. But if you know anything about Kubernetes, you know that there are a number of different Kubernetes distributions and services available, each with different strengths and weaknesses.

View more...

How to Run Playwright Tests Sequentially in Same Browser Context

Aggregated on: Sat Oct 16 2021 09:50:21 GMT+0000 (Coordinated Universal Time)

The Playwright is a new automation framework by Microsoft. The Playwright framework is distributed under MIT Open Source License. Playwright supports various programming languages such as Java, JavaScript, TypeScript, .Net, etc.  Playwright Executes Each Scenario in Its Own New Browser Context If you have worked with the Playwright framework you might have observed that if you write multiple tests inside the describe function, it gets executed one after another but each test runs in a separate browser context. That means that if you have performed a login in test1() it doesn't preserve those in test2(). The reason is that each time playwright executes the test, it creates a new context and executes the test. This feature also allows you to write independent tests and you can execute them parallelly with less execution time.

View more...

Live From INTERACT: Microsoft's Developer Velocity Research

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

This week we have another episode from the 2021 engineering leadership conference INTERACT. In this live conversation I interview Henrik Gütle, GM of Azure for Microsoft Canada. Henrik joins the podcast to break down the results and key takeaways of Microsoft’s research into the impact of remote work on developer velocity - and what engineering leaders can learn from it.

View more...

Getting a Wildcard SSL Certificate for Your Website at No Cost

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

When you work for any software deployment project, you deploy code in multiple environments and test it.  You test the site with HTTP but not in HTTPS. Why? Because you need an additional certificate for it. Getting a certificate for a lower environment could be difficult due to the costing factors, but there is a way by which you can get a wildcard certificate and configure it with your website. You can implement a PKI solution by using the AD CS Windows Server role. 

View more...

6 Ways To Ruin Your Logging

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

I’m knee-deep in some log refactoring on my current project, which is something that I’ve done now on several projects. This is one of my favorite ways to become familiar with a new codebase since it typically touches all of the code. As I do this on new projects, I’m consistently faced with many of the same frustrations, which I have decided to catalog here. Most projects I see make at least several of these mistakes, some make all of them. But since misery loves company, I’ll share these frustrations with you, so that you can repeat them and join me in commiserating–or avoid them, if you so choose.

View more...

Two Key Focuses (And a Checklist) For New Engineering Managers

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

There is very little formal guidance for new engineering managers. When I first moved from an individual contributor (IC) to an engineering manager (EM), I found myself struggling to find training resources.  I want to change that - and I hope this article will serve as a small start in that direction. As an engineering leader at Mark43, I do a lot of mentorship and coaching for engineers who aspire to move to engineering management and early-tenure engineering leaders. Here are a couple of initial focus areas that a first time EM can build upon.

View more...

Increase Your DevOps Productivity Using Infrastructure as Low Code

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

As an individual developer or as a part of a wider software development or IT team, you will find that time is rarely on your side, with many competing priorities throughout the working week. This naturally focuses you to look for ways to increase your productivity through the use of technology and tools to help you achieve more in less time. Throughout this blog post, we’re going to look at DevOps productivity and compare traditional tools with infrastructure as low code tools.  Automate Software Development Tasks With DevOps Tooling Everyone has heard of DevOps, yet many people struggle to understand exactly what DevOps is. Fundamentally DevOps is a perfect mixture of the philosophy of DevOps along with daily practices and supporting technology tools to enable you to deliver value through technology rapidly to your customers. 

View more...

Programming BS: Checked Exceptions

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

The Problem I have always hated being forced to catch an exception, largely because: Remember that code you wrote that brings the database backup, adds disk space or memory, grants the correct file privileges as root? Neither do I. If a real problem occurs that is beyond the control of your code, then by definition, you cannot change the outcome. So what's the point of forcing you to handle it? Just because something is a problem for you, doesn't mean it's a problem for me. EG, in Java JNI (basically a key/value store), if you look up a value for a given key, but the key does not exist, it throws an exception. It seems the designers of JNI assumed it is the only source of information for a given value. What if it isn't? Since there is nothing you can really do in response to an exception, they wind up being re-thrown up to the top, where a web service returns an HTTP 500 code, a GUI displays a "there's a problem we can't fix" dialog to the user. If an interface method does not declare any checked exception type, the implementation cannot throw any checked exceptions. But what if the implementation has to make calls that throw checked exceptions? Sometimes you're forced to use exception handling as an if/then statement Sometimes you need to have nested try/catch blocks, which can be hard to reason about and are invariably not unit tested for each catch statement. Strategies If you look at Java code as an example, people use various strategies to try to deal with checked exceptions, such as:

View more...

Fantastic ML Pipelines and Tips for Building Them

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

A machine learning (ML) pipeline is an automated workflow that operates by enabling the transformation of data, funneling them through a model, and evaluating the outcome. In order to cater to these requirements, an ML pipeline consists of several steps such as training a model, model evaluation, visualization after post-processing, etc. Each step is crucial towards the success of the whole pipeline, not only for the short-term but also in the long run. In order to ensure the sustainability of a pipeline in the longer run, ML engineers and organizations need to account for several ML-specific risk factors in the system design. The authors from Google pinpoint risk factors such as boundary erosion, entanglement, hidden feedback loops, undeclared consumers, data dependencies, configuration issues, changes in the external world, and a variety of system-level anti-patterns [1]. In this article, we will be diving deep into the root causes of some of these risk factors. Figure 1: Automated pipeline (source : 123.rf) 1. Boundary Erosion If you are given an ML pipeline and if your data team approaches you with a change in the input feature such as increase/reduction in dimension, would you be able to ensure that it won't affect the entire pipeline? Mostly the answer would be no.

View more...

Exploring PGBouncer auth_type(s) With CockroachDB

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

PGBouncer is a lightweight connections pooler for PostgreSQL. There are instances where PGBouncer can be used with CockroachDB to offset the high costs of having many active connections, segregation of responsibilities (i.e. business analysts are segregated from the mission-critical users) serverless applications needing pooling mechanisms. PGBouncer comes standard with various types of authentication mechanisms, and we're going to explore a few compatible with CockroachDB. We already explored trust and cert in my previous article, feel free to review that if you need a refresher. Previous Articles Using PGBouncer with CockroachDB Using PGBouncer with Cockroach Cloud Free Tier Exploring PGBouncer auth_type(s) with CockroachDB Motivation CockroachDB offers a rich gamut of authentication mechanisms. The most widely accepted by engineering is cert-based authentication. We also support gss, but within the context of PGBouncer, it is not supported. For today's session, I will cover the remaining supported types in PGBouncer and how they translate to CockroachDB. For a brief overview of all available PG and CockroachDB auth methods, I'd like to direct you to an in-depth blog by one of our engineers. Also, I must mention that everything stated in this article may be dated by the time you read this as CockroachDB is under active development and we may support more auth_type(s) later.

View more...

Data as an Asset — Recipe for Success

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

The growth in the number of connected devices, new regulatory compliances, the promise of 5G, and evolving methods of using and analyzing data have ushered in a new age driven by insights gained from connecting customer, strategic, and operational data. Businesses are transitioning into becoming more data-centric now, calling for more advanced data management and analytic systems.  Data underpins the success of organizations in mining both physical assets and digital business opportunities — improving accuracy, increasing efficiency, and augmenting the ability of the workforce to deliver excellent value. Data, essentially, is the lifeblood of any organization, and hence, its accessibility, monitoring, and availability become an essential factor for business agility.

View more...

Building Our E-Commerce Platform With Serverless FaaS

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

With so many 'something-as-a-service' options at our disposal for infrastructure, in 2017 we opted for function-as-a-service (FaaS) to build our platform of e-commerce services. Our mission was, and remains, to build for e-commerce services what AWS built for web services, or what we call the commerce fabric of the internet. Building with FaaS and only paying for function execution time rather than constantly running servers (i.e. serverless) allowed us to serve customers early on without incurring high infrastructure costs. These customers were large, household names and referrals from our founding team who had transformed digital at Staples. Part of this transformation involved moving from the monolithic e-commerce platform IBM Websphere to a service-oriented architecture with open-source and custom-built software.

View more...

Springboot Video Tutorial: Implement User Sign-Up

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

In the video below, we take a closer look at Spring boot and how to implement user sign-up with RESTful Web Services. Let's get started!

View more...

Of Low-Code, Digital Trust, and Staying Ahead of the Risk Curve

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

It's easy to throw shade on risk like it’s a bad thing. But all innovation involves risk. Which isn’t necessarily bad. Not if the consequences of being wrong about it don’t pose an existential threat. But businesses everywhere are struggling to cope with doomsday scenarios such as climate change, cyber smash-and-grabs, the global COVID-19 crisis, and more. Looking ahead, risk trends will continue to evolve as digital transformation accelerates, as the remote work trend mainstreams, and as enterprise spending on the internet of things tops $1 trillion by 2023. For context, overall IT spending is expected to surpass the $4 trillion mark in 2021, up 8.6% from 2020 according to analyst firm Gartner. But here’s the kicker: just 22% of CEOs believe they have a risk-management playbook to sustain the resiliency and long-term success of their business.

View more...

Managing Docker Apps With Kubernetes Ingress Controller

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Think back to when your development team made the switch to Dockerized containers. What was once an application requiring multiple services on virtual machines transitioned to an application consisting of multiple, tidy Docker containers. While the result was a streamlined system, the transition likely was daunting. Now, it’s time for another transformational leap: moving from a single set of containers to a highly available, orchestrated deployment of replica sets using Kubernetes. This may seem like a massive transformation, but you can reduce the bumps in the road by using an open-source Ingress Controller to simplify your task and provide plugins that you can customize based on your need.

View more...

How to Choose a Low-Code Integration Platform

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

With the rapid and accelerated enthusiasm towards digital transformation initiatives, iPaaS solutions have become increasingly popular. iPaaS stands for Integration Platform as a Service and facilitates developing, deploying, executing, managing, and monitoring integration processes connecting multiple endpoints. With an iPaaS solution, external developers are not required for a company’s digital transformation efforts. Now, every company must become a software company. Therefore, everyone in the business must become a developer, and developers could exist in different lines of business, apart from the full-time developers in the central IT team. While the central IT team would continue to have full-time developers playing their role as integration specialists, other lines of business would have other integration personas such as ad hoc integrators and citizen developers.

View more...

Connecting to Presto With Superset

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

TL;DR Superset refers to a connection to a distinct data source as a database. A single Presto cluster can connect to multiple data sources by configuring a Presto catalog for each desired data source. Hence, to make a Superset database connection to a particular data source through Presto, you must specify the Presto cluster and catalog in the SQLAlchemy URI as follows: presto://<presto-username>:<presto-password>@<presto-coordinator-url>:<http-server-port>/<catalog>. Superset and SQLAlchemy Superset is built as a Python Flask web application and leverages SQLAlchemy, a Python SQL toolkit, to provide a consistent abstraction layer to relational data sources. Superset uses a consistent SQLAlchemy URI as a connection string for a defined Superset database. The schema for the URI is as follows: dialect+driver://username:password@host:port/database. We will deconstruct the dialect, driver, and database in the following sections.

View more...

The Pros and Cons of Cloud Computing

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Learning about the pros and cons of cloud computing will better your company’s understanding of this concept. Cloud computing is considered a promising technology for organizational entities to deal with computing issues, especially data storage, in the future. What Is Cloud Computing? Cloud computing is the on-demand management of all computer system services (e.g. software, networking, or big data analytics) in virtual portals.

View more...

Multithreading Java and Interviews Part 2: Mutex, the Java Monitor Model

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

In the previous chapter, we learned about the following: Also in the previous article, we faced a problem with a shared variable that shouldn't be shared or at least one that we have to define the order for updating this variable.

View more...

Codeanywhere adventures - Creating your first container project (part 2)

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

In the previous article in this series, we introduced the world of Codeanywhere, a cloud IDE and container development experience all available in just your browser. Are you ready for some more amazing, easy to use, developer tooling that requires not a single tooling installation and no configuration?

View more...

Set Up MySQL 8 Master-Slave Replication on Ubuntu 20.04

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

MySQL is an open-source and one of the most widely used relational database management systems. Setting up a separate MySQL backup server is essential in the event of failure, as the backup server contains everything necessary for a successful recovery. Replication features in MySQL allow you to maintain multiple copies of MySQL data. All data in the master server will be synced to the slave server automatically. If your master server fails, you can promote a Slave to a Master for commit operations.

View more...

AWS Terraform Snitcher

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Snitch (chivato in Spanish, “dedo-duro” in slang Portuguese), if you usually watch CNN, mainly political subjects, that’s a word that you probably hear a lot. The dictionary meaning is: “to secretly tell someone in authority that someone else has done something bad, often in order to cause trouble“. Ok, it sounds too strong maybe for our case, but what we want is a kind of a similar thing: catch (and who caused) the Drifts in Terraform state. Terraform Drifts Terraform Drift is when the actual state of your infrastructure does not equal the state defined by your configuration (Infrastructure-as-Code), then - they differ already.

View more...

Efficient Model Training in the Cloud with Kubernetes, TensorFlow, and Alluxio

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Alibaba Cloud Container Service Team Case Study This article presents the collaboration of Alibaba, Alluxio, and Nanjing University in tackling the problem of Deep Learning model training in the cloud. Various performance bottlenecks are analyzed with detailed optimizations of each component in the architecture. Our goal was to reduce the cost and complexity of data access for Deep Learning training in a hybrid environment, which resulted in an over 40% reduction in training time and cost. 1. New Trends in AI: Kubernetes-Based Deep Learning in The Cloud Background Artificial neural networks are trained with increasingly massive amounts of data, driving innovative solutions to improve data processing. Distributed Deep Learning (DL) model training can take advantage of multiple technologies, such as:

View more...

The world's least popular programming language

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

A software engineer looking to learn something new will typically first check how many available jobs there are related to the subject at hand, simply to make sure he or she is valuable for future employers - And we all know that the most popular programming languages includes JavaScript, Java, C#, Python and TypeScript. However, what is the least popular programming language, still in actual use, and why should you even care? Ignoring the funny prototype OOP parts of JavaScript, all of the above programming languages are more or less copies of each other, without much difference semantically. Sure, there are a few noteworthy exceptions, such as SQL and F#, but almost all programming languages at the top of the popularity index are more or less rip offs, copying and pasting features from each other. This creates a problem for you individually, and also for the world at large, which I refer to as local evolutionary optimums. The problem is best explained as follows ...

View more...

Configuring Okta as a Client Provider in MuleSoft Anypoint Platform

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

To follow this tutorial, if you already have an Okta account, you can use that. Otherwise, you need to create a trial account on Okta and Anypoint Platform.  Note: If we do not configure any external client provider, MuleSoft Anypoint Platform itself acts as a client provider. Once some other external client provider is configured, we cannot use MuleSoft as a client provider.

View more...

Token Based Security: Angular Applications, Part 2

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Introduction In the previous post on the topic of Token Based Security, we created an API endpoint and protected it (using Authorize attribute) with IdentityServer. Then, we set up a simple Angular application with an AuthService to use oidc-client library. We also created few angular components at the end of the previous post, as well as two buttons for login/logout purposes in appComponent, then wired the following method with click events: Today, we will continue from the previous post and complete the login/logout process. We will see how the OIDC client library makes it very easy to implement the complex redirect flows out of the box.

View more...

11 Best No-Code/Low-Code Backends of 2021

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

No-code and low-code development platforms let people worldwide build their businesses and applications without writing code. According to Forrester, the no-code/low-code category will grow to $21.2 billion by 2021. Before these platforms, building an application for a business would require hiring experienced software developers. But that’s not the case anymore. Today, many no-code/low-code platforms make it possible for independent creators, artists, and entrepreneurs alike to build applications on their own.

View more...

5 Enterprise Web Development Trends Relevant in 2021-2022

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Introduction Watching the current tech trends are crucial, especially for large web projects owners who wish to outrun the competition. Deploying a simplified technology stack using new web development frameworks can lead to shorter development times and improved outcomes. Here are some ideas. Trend 1: Optimize Processes Developers want easy access to tools and a consistent style as well as accessibility recommendations, but each member of the team has different needs, resulting in a complex and dynamic development scenario. However, design systems are a simple and effective approach to the development process. The system caters to each team member’s needs, allowing them to focus on their task by providing access to component libraries and design patterns. Similar to older corporate design strategies but updated to include code-written guidance under version control, design systems ensure consistent digital products while creating an easy-to-maintain and unambiguous collection.

View more...

TiDB Operator Source Code Reading (Part 3) - The Component Control Loop

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Previous articles in this series: TiDB Operator Source Code Reading (I): Overview TiDB Operator Source Code Reading (II): Operator Pattern In my last article, I introduced how we design and implement tidb-controller-manager and the controllers' internal logic and how each controller receives and handles changes. This time, I'll describe how we implement the component controllers.

View more...

Terraform vs CloudFormation: The Final Battle

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

Infrastructure-as-a-code is a big buzz in the IT industry right now, and when it comes to IaC, Terraform vs CloudFormation is a hot topic to discuss. Terraform and CloudFormation are referred to as software that defines infrastructure, which helps your IT team to provision and manages your infrastructure with different tools. Infrastructure automation is one of the pillars of implementing DevOps practices in your project.  When asked about the best tools to automate infrastructure provisioning, two prevalent names come to mind: Terraform and AWS CloudFormation. This blog discusses the different aspects of Terraform vs CloudFormation in detail.

View more...

Super DRY code

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

DRY means "Don't Repeat Yourself" and is arguably one of the most important design principles as you create code, regardless of what language you use. The reasons are simple; Because every time you repeat code, you have to modify multiple places if you need to change your logic. Hence, if you don't create DRY code, you get bloated software, repeating the same constructs, to the point where it becomes impossible to maintain. Hence, the very definition of DRY is that your code is reusable, implying you can arguably quantify how DRY your code is, by asking yourself how reusable your code is. OOP however has one fundamental flaw which makes it ridiculously difficult to create DRY code, which is best explained by the following famous quote about reuse in OOP... You want the banana, but you get a monkey, holding a banana, in the rain forest!

View more...

2 Modules in Nebula Graph: Scheduler and Executor

Aggregated on: Sat Oct 16 2021 02:55:26 GMT+0000 (Coordinated Universal Time)

You may have learned the optimizer of Nebula Graph’s query engine in the last article. In this article, we will introduce how the Scheduler and the Executor, the last two modules of the query engine, are implemented. Overview In the execution phase, the execution engine uses the Scheduler to transform a physical execution plan generated by the Planner into a series of Executors to drive their execution. Each PlanNode in a physical execution plan has a corresponding Executor.

View more...

Cryptographically Securing Democratic Elections with Block Chain Technology

Aggregated on: Sat Jun 27 2020 11:10:02 GMT+0000 (Coordinated Universal Time)

Securing Democratic Elections using cryptography, is actually very easy. In fact, what I am describing in this article, is really nothing but "blockchain for Democracy". But since we're all coders here, let me start with some simple pseudo code. Plain Text   xxxxxxxxxx 1   1 openQueueSempahore 2  if (firstVote) 3    oldHash = hash(subject + body) 4  else 5    oldHash = previousVoteHash 6  newHash = hash(oldHash + username + voteValue) 7  insertVote(username, voteValue, newHash) 8 The whole idea with the above pseudo code, is that it results in a "chain of votes", where each individual vote, is based upon its previous vote's hash value. Then the first vote, is based upon the hash value of the subject and its content.

View more...

Stand-Up 2.0: Ten community insights from 100+ responses

Aggregated on: Fri Jun 26 2020 21:30:03 GMT+0000 (Coordinated Universal Time)

I'm in awe (thank you)  Two weeks ago I posted a blog on DZone about reinventing our daily stand-up meeting: Stand-up 2.0: It's time to ditch the daily from 1993 We don't need a meeting to discuss individual status updates that could be a Slack message.

View more...

Cloud-Native Benchmarking With Kubestone

Aggregated on: Fri Jun 26 2020 21:30:03 GMT+0000 (Coordinated Universal Time)

Intro Organizations are increasingly looking to containers and distributed applications to provide the agility and scalability needed to satisfy their clients. While doing so, modern enterprises also need the ability to benchmark their application and be aware of certain metrics in relation to their infrastructure.In this post, I am introducing you to a cloud-native bench-marking tool known as Kubestone. This tool is meant to assist your development teams with getting performance metrics from your Kubernetes clusters. How Does Kubestone Work? At it's core, Kubestone is implemented as a Kubernetes Operator in Go language with the help of Kubebuilder. You can find more info on the Operator Framework via this blog post.Kubestone leverages Open Source benchmarks to measure Core Kubernetes and Application performance. As benchmarks are executed in Kubernetes, they must be containerized to work on the cluster. A certified set of benchmark containers is provided via xridge's DockerHub space. Here is a list of currently supported benchmarks:

View more...