Welcome to curated list of handpicked free online resources related to IT, cloud, Big Data, programming languages, Devops. Fresh news and community maintained list of links updated daily. Like what you see? [ Join our newsletter ]

Firestore and authentication

Categories

Tags nosql software infosec database

Firebase authentication makes it easy to add user identities to your app. When combined with Firestore, it can help to secure user data. By Steve Marx.

Firebase authentication is a slick service for user identity management. It handles creating accounts, logging users in and out, verifying email addresses, and resetting passwords via an emailed link. There’s even prebuilt UI in the form of FirebaseUI Auth. Firebase authentication supports five different auth providers.

The article describes:

  • Firestore data
  • Firebase authentication
  • Listening for authentication changes
  • Logging in
  • Upgrading anonymous accounts
  • Using authentication in Firestore security rules
  • Bonus security rules

Firebase Authentication helps you to manage user identities. Email/password, social logins, and custom back ends can be used to log users in. You will also get links to further reading and code examples. Good read!

[Read More]

Junit 5 tutorial for beginners

Categories

Tags java tdd software learning

Sai Upadhyayula wrote this piece about Junit. Junit 5 is one of the popular testing frameworks in the Java Development World. Even though JUnit 5 is a successor for Junit 4, the architecture of the framework is completely different, so let’s have a look at the Architecture of Junit 5.

The tutorial explains the following:

  • Junit 5 architecture
  • Junit platform
  • Junit Jupiter
  • Junit Vintage
  • Understanding test lifecycle
  • Implementing lifecycle annotations in our test
  • Assumptions
  • Parameterized Tests
  • ValueSource
  • Running tests using Maven Surefire plugin

… and much more. There is a GitHub repository with the code so you can follow the steps in the article. Nice one!

[Read More]

Architect's guide to APIs: SOAP, REST, GraphQL, and gRPC

Categories

Tags software-architecture programming restful learning

There are many strategies for data exchange. Here’s a primer on four essentials. By Bob Reselman.

An architecture is wishful thinking until we understand how information is transferred across systems. That means whether you are an Application Architect or an Enterprise Architect, it’s essential that you understand the tradeoffs at hand when considering a particular method for moving information between systems.

GraphQL executes queries and mutations synchronous and messaging by way of Subscriptions asynchronously

Source: @redhat.com https://www.redhat.com/architect/apis-soap-rest-graphql-grpc?sc_cid=70160000001273HAAQ

The article tries to explain following:

  • Understanding APIs as data exchange
  • SOAP
  • The Structure of a SOAP Message
  • Specifying Behavior in SOAP
  • REST
  • GraphQL
  • gRPC
  • Which API format is for you?

Choosing the right API format for an enterprise architecture is a big decision. The choice will determine how the architecture works and the talent and budget that will be needed to implement and maintain the application through its lifetime. Nice one!

[Read More]

Best practices of comprehensions in Elixir

Categories

Tags programming erlang elixir apis

Surprising examples of using for-comprehension in Elixir. For comprehension provides a very elegant syntax to loop over collections and an effective way to transform the given enumerable. By Kamil Lelonek.

A special for form gives you syntactic sugar to iterate, filter, and map the given structures. The entire expression consists of three parts:

  • generators — produce the data for comprehension. Usually, from an enumerable like a list, a map, a range, or even a bitstring. In the form of: element <- collection
  • filters — select only particular elements from an enumerable based on the given condition. In the shape of a function, e.g. x > 2, any_function(element), or even anonymous_function(element)
  • collectables — the result of comprehension. Data structures that implement the Collectable protocol, a list by default

Apart from the answer on what are the elixir comprehensions question, the article also provides robust information on Generators. Generators produce values to be used in comprehension. Any enumerable can be given on the right side, and the left side is used to catch a single element. The article goes over useful tricks to use with generators, including pattern matching, skipping, ignoring … Good read!

[Read More]

Developing Gatsby sites using Nx

Categories

Tags web-development react javascript nodejs

Nx is a suite of powerful, extensible dev tools that help you develop, test, build, and scale with React and React frameworks like Gatsby, Next.js, React Native, etc. Co-authored by Max Koretskyi, Victor Savkin & Juri Strumpflohner.

Nx has high-quality VSCode and GitHub plugins to provide a more integrated dev experience. It also have a powerful build system that uses distributed computation caching to reduce build and test times.

Although Nx works just as well with plain React, Next.js or React Native, this blog post focuses on Gatsby. Here’s what we’ll explore in this article:

  • Creating a new Nx workspace
  • Generating new Gatsby and React applications
  • Generating and using a shared library of UI components
  • How code change analysis, computation cache, and other features of Nx

You will learn how to start with an empty Nx workspace and add a new Gatsby application. Then serve, build, and test your application. Also, how to seamlessly generate new pages and components. You then add a second application written in React, and share some UI components between the two applications. The video tutorial is also available and link provided. Good article!

[Read More]

Docker for Java developers: 5 things you need to know not to fail your security

Categories

Tags infosec containers docker java miscellaneous

In this article we will focus on the Docker container security aspects related to building a Docker image, reducing the security vulnerabilities count introduced by Docker base images as well as Dockerfile security best practices. By Liran Tal and Omer Levi Hevroni.

Docker security refers to the build, runtime, and orchestration aspects of Docker containers. It includes the Dockerfile security aspects of Docker base images, as well as the Docker container security runtime aspects—such as user privileges, Docker daemon, proper CPU controls for a container, and further concerns around the orchestration of Docker containers at scale.

Let’s get started with our list of 10 Docker security best practices:

  • Prefer minimal base images
  • Least privileged user
  • Sign and verify images to mitigate MITM attacks
  • Find, fix and monitor for open source vulnerabilities
  • Don’t leak sensitive information to Docker images
  • Using multi-stage builds
  • Using Docker secret commands
  • Use fixed tags for immutability
  • Use COPY instead of ADD

Docker defaults to running containers using the root user. When that namespace is then mapped to the root user in the running container, it means that the container potentially has root access on the Docker host.

We liked: Use an alpha feature in Docker for managing secrets to mount sensitive files without caching them. Excellent!

[Read More]

10 reasons to try no-code apps for your mobile workforce

Categories

Tags cio app-development serverless web-development learning miscellaneous

Whatever your 2021 business goals are, adopting no-code apps can bring you one step closer (many steps closer, if we’re being honest) to reaching them — especially if you’re managing a mobile workforce. By Sam Puckett.

All businesses collect information to some degree. Whether it’s hours worked by their employees, incident reports and other information related to safety, or the condition of their assets at any given time.

Here are the top 10 reasons to adopt no-code development software in 2021:

  • Reduce data-collection errors
  • Work more efficiently
  • Engage and empower your teams
  • Save money
  • Get better documentation and analytics
  • Improve situational awareness
  • Automate workflows

Whether you’re conducting inspections, surveys, or completing a process checklist, data collection is often just the first step of the process. In order for data to be effective, something needs to happen with that information, and in most cases, the sooner that data is extracted and analyzed, the better. With a no-code development platform, you can build automated workflows into your apps that move things along faster. Short and sweet!

[Read More]

How to SSH into a Docker container

Categories

Tags containers docker devops infosec how-to

How do you use SSH to enter a Docker container? The traditional approach consists of two step. By Debdut Chakraborty.

With some efforts, you can actually SSH into a running container directly, without logging into the host system first. The article then guides you how to:

  • SSH into a Docker container: But why?
  • Setting up SSH access for Docker containers
  • Set up the SSH daemon in the container
  • Log into the container via SSH
  • How does this work?
  • Deploy the service

The article then explains how to use the _docker compose and reproducible, configurable way of deploying an SSH server container on your remote host. Since you will be accessing the server via SSH keys, you need to add the public SSH key of your local system to your host Linux server’s directory where docker-compose file is located and keep the name “id_rsa.pub” just to be sure. Good read!

[Read More]

What is a gRPC API and How Does it Work?

Categories

Tags apis microservices app-development performance web-development

gRPC has become an important technology for implementing distributed software systems that need to run fast on a massive scale. In short, gRPC is an API framework that allows a program in one location on the internet to pass data to a distinct function in another program at another location on the internet for processing. By Bob Reselman, @CogArtTech.

gRPC has drawn significant interest from the development community since the specification was released as open-source by Google in February of 2015.

In this article, we’re going to discuss how gRPC emerged on the landscape of distributed computing. Also, we’re going to present an overview of the gRPC specification and show how the specification is implemented using a demonstration gRPC API created especially for this series of articles.

The main content of this article:

  • The need for inter-process communication
  • Remote Procedure Calls, the precursor to gRPC
  • Implementations of RPC
    • Stored Procedures
    • RPC and ERP
    • RPC under Java
    • XML-RPC
  • The emergence of gRPC
  • The gRPC Framework in a Nutshell

Basic concepts behind gRPC

Source: https://www.programmableweb.com/news/what-grpc-api-and-how-does-it-work/analysis/2020/10/08

Streaming is a powerful feature of gRPC and one that deserves additional attention. gRPC is an important framework on the API development landscape. The use of Protocol Buffers, which is foundational to the gRPC specification offers a way to facilitate lightning-fast data transfers over the network. Excellent read!

[Read More]

Software architecture diagrams - which tool should we use?

Categories

Tags software-architecture cio teams devops cicd microservices

“Which diagramming tool should we use?” - I hear this question on a regular basis, with teams debating the pros and cons of tools such as PlantUML vs Mermaid, for example. By Simon Brown.

Rather than argue over which diagramming tool you’re going to use, why not use them all? Although we only saw PlantUML support in the previous blog post, the open source Structurizr CLI actually allows you to use a number of tools to render your software architecture diagrams. For example, you can create the same view (C4 model Container diagram), each created from the same DSL file, and rendered in different diagramming tools.

The article the compares following tools:

The Structurizr DSL and CLI also support Dynamic diagrams for showing collaboration/behaviour, and interactions at runtime. Each diagramming tool has its own pros and cons, so using a tool agnostic format to define your model and views provides an easy way to try them all out, and reduce lock-in.

This is one from 5 articles in a series focusing on software architecture diagrams as text. Please check the rest of them, too. Interesting read!

[Read More]