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 ]

Graphql vs REST: Which one is better? (2020)

Categories

Tags apis nodejs web-development software-architecture

When you need to build an API, your mind will likely jump to REST, the de facto standard for API creation. However, this is changing with the increase of GraphQL popularity. This post was originally posted in May 2019 and updated in March 2020. Published by João Inez on imaginarycloud.com.

The goal is to provide a brief explanation to anyone who still hasn’t got to know GraphQL, clarify exactly what it does better than REST, for those who are still skeptic about this technology and in which cases we should use GraphQL or REST.

The article reads about GraphQL’s main features and the advantages that it has over REST, highlighting a few points in which both differ. GraphQL is a query language for APIs that enables declarative data fetching in order to give the client the power to specify exactly the data that is needed from the API. It makes easier to evolve APIs over time.

The main sections of the article:

  • What is GraphQL
    • Who created GraphQL
    • Which companies use GraphQL
    • GraphQL in context
  • What is REST
  • Why WAS GraphQL created if there’s already REST
  • Why GraphQL is better than REST

… and much more. GraphQL provides a smooth and fast development environment with its declarative and flexible nature, offering many improvements over REST. Excellent read!

[Read More]

Serverless Service Mesh with Knative and Linkerd

Categories

Tags serverless kubernetes devops gcp containers

Charles Pretzer wrote this piece about how to use Linkerd with Knative. Two of the most popular serverless platforms for Kubernetes are Knative and OpenFaaS, and there’s a lot of existing content on using Linkerd and OpenFaaS together.

While the first version of Knative required Istio, in recent Knative releases they have removed this requirement. Author will show you how to add Linkerd to your Knative installation to automatically provide both mTLS (mutual TLS) and comprehensive metrics to your Knative services and system components.

The following steps are described in the article:

  • Setup
  • Install Knative Serving
  • Install Ambassador
  • Running a Simple Knative Service
  • Installing the Linkerd Service Mesh
  • Inject the Linkerd Proxy

.. and more. Plenty of CLI examples included. The Ambassador API Gateway (Kubernetes API Gateway + Layer 7 Load Balancer + Kubernetes Ingress and more) handles ingress traffic to a Kubernetes cluster. In this example, we will use Ambassador as a simple Kubernetes Ingress to the KinD cluster. Sweet!

[Read More]

Setting SSL/TLS protocol versions with PostgreSQL 12

Categories

Tags infosec database devops performance servers

Straight to the point tutorial about setting SSL/TLS protocol versions in open source database PostgresQL. Published by Peter Eisentraut.

PostgreSQL 12 contains two new server settings:

  • ssl_min_protocol_version
  • ssl_max_protocol_version

As the names indicate, these are used to control the oldest (minimum) and newest (maximum) version of the SSL and TLS protocol family that the server will accept.

For historical reasons, in PostgreSQL, all settings related to SSL and TLS are named ssl_something, even though TLS is the currently correct term. Which TLS versions PostgreSQL supports also depends on what the OpenSSL library in use supports. All releases under the “OpenSSL” label (as opposed to the predecessor “SSLeay”) support at least TLS 1.0.

By default, PostgreSQL server and client leave the negotiation of the TLS version up to the SSL library. They will negotiate a TLS version between 1.0 and 1.3 transparently and use the latest one that both sides support.

For details steps how can you check what TLS versions you are currently using, commands examples and more – follow the link to this excellent tutorial!

[Read More]

How to work from home: 20 tips from people who do it successfully

Categories

Tags agile career cloud distributed

Working from home is awesome … right up until the cat throws up on your computer. And your neighbor, who you can only assume is building a time machine, starts firing up all sorts of power tools and noisy machinery across the street. Written by Erik Devaney.

For many modern professionals, working from home every once in a while is a luxury that our respective companies afford us. But which environment actually allows us to be more productive: the home office or the office office?

At the home office, however, I find that it’s easy for you to become your own worst enemy. Because when you’re not surrounded by coworkers, you’re free to drop those pesky inhibitions. At the home office, no one’s watching. You don’t necessarily feel that same peer pressure or communal obligation to get stuff done. When I work from home, I wake up, put on a pot of coffee, and start working immediately – much earlier normal working hours.

The article covers:

  • Get started early
  • Pretend like you are going into the office
  • Structure your day like you would in the office
  • Choose a dedicated work space
  • Don’t stay at home

To learn the rest please follow the link to the author’s article. Nice one!

[Read More]

Data structures and algorithms in Java: A beginner's guide

Categories

Tags java programming web-development jvm

Learn all about array and list data structures in Java, and the algorithms you can use to search and sort the data they contain. By Jeff Friesen.

Data structures are based on abstract data types (ADT), which Wikipedia defines as follows:

[A] mathematical model for data types where a data type is defined by its behavior (semantics) from the point of view of a user of the data, specifically in terms of possible values, possible operations on data of this type, and the behavior of these operations.

This tutorial series is a beginner’s guide to data structures and algorithms in Java. You’ll learn:

  • How to recognize and use array and list data structures in your Java programs.
  • Which algorithms work best with different types of array and list data structures.
  • Why some algorithms will work better than others for your specific use case.
  • How to use time and space complexity measurements to choose the most efficient algorithm for your use case.

This is five part tutorial with excellent overview and explanation how more you understand about data structures and algorithms, and how they work together, the more efficient your Java programs will be. Brilliant!

[Read More]

Sprint goal template

Categories

Tags agile teams cicd management

The Sprint Goal is mentioned numerous times in the Scrum Guide, however it can be overlooked by many teams or seen as an “oh yeah” moment when teams are finishing Sprint Planning. By Steve Trapps.

When I started out in a Scrum Team we never really had a Sprint Goal, our focus tended to be looking at the items in the backlog then saying “Get that done and that one, if not all of them!”… Teams I have worked in have struggled to create a meaningful goal, i.e. one that people can read and easily understand without it being too prescriptive on what the team needs to do.

One purpose of the Sprint Goal is to provide focus to the Development Team during the Sprint. If the goal is just a set of items to complete then chances are the team will work in isolation from each other, as each person works on an item with potentially the team pulling in different directions. – Not a great place to be in!

Follow the link to original article to actually see the well tested template. Excellent!

[Read More]

Kotlin -- The suspend modifier under the hood

Categories

Tags java kotlin programming app-development

Kotlin coroutines introduced the suspend modifier in our daily life as Android developers. By Manuel Vivo.

In this tutorial author will look under the hood and answer the question: How is the compiler transforming the code to be able to suspend and resume the execution of coroutines? How is the compiler transforming the code to be able to suspend and resume the execution of coroutines?

The article content is split into sections:

  • Coroutines 101
  • Suspend under the hood
  • Continuation interface
  • Using different Dispatchers
  • The generated State machine

The Kotlin compiler will create a state machine for every suspend function that manages the coroutine’s execution for us! Very useful for anybody interested in Kotlin!

[Read More]

Zero downtime Laravel deployments with Laravel Deployer and Github Actions

Categories

Tags php devops web-development cicd

Michael Brooks is author of this blog post about Github actions and how they can automate your entire workflow. From building your assets to running your testing and deployment strategies.

Github Actions is very similar to other services such as TravisCI, CircleCI, GitLab Pipelines etc, but if you already have your projects on GitHub, then it makes sense to get Actions working as well.

The article then deals with:

  • Setting up Github Actions
  • Scaffolding the workflow
  • Defining our jobs
  • Building your JavaScript and CSS assets

Jobs are individual runners or tasks and one job can depend on another. This means if a job fails, and the next one depended on that job, then it won’t run. For example, before we can test our app, we need to ensure our assets are built and if we need all tests to pass before deployment, then we need to ensure that runs successfully too. Perfect!

[Read More]

How to use Netlify to deploy a free Go web application

Categories

Tags golang programming devops

Netlify is an web host that specializes in hosting static files. But Netlify also has various solutions for dynamic hosting, and their “Functions” service turns out to be a very easy way to host a Go web application, often for free. In this post, you will get walk through a demo repo author made that shows how to do this. By Carl M. Johnson.

Netlify’ documentation is pretty good, so it is recommended to consult them for more in-depth information. You can see the final version of all of the code on Github and a live demo on Netlify.

The goal is to have a backend fetch the RSS feed we need and return a JSON Feed from the same origin as our website. Go makes it easy to write a service to turn a URL with XML in it into JSON. A quick Go application that uses the feed2json module to create an HTTP server is just few lines of code long.

However Netlify use an AWS Lambda, rather than a normal HTTP service, so we’ll either need to rewrite our service to use Lambda or find an adapter. To learn how to do it, click and follow link to original article. Well done!

[Read More]

How to create a small business continuity plan for your startup

Categories

Tags miscellaneous management how-to

Disasters like floods, earthquakes, fires, or cyber attacks rarely arrive announced. Is your company adequately prepared for such events? A business continuity plan provides a rundown of the procedures a company must follow in the face of an emergency to continue business operations during and after a disaster. By brex.com.

Business continuity is a company’s ability to maintain its operations and critical business functions during and after a disruption. The business continuity plan (BC or BCP) provides instructions to an organization on how to proceed after a disruptive event. It includes a list of procedures to follow, covering human resources, business processes, protection of assets, and more.

The article further reads about:

  • What is business continuity?
  • Who needs business continuity planning?
  • The business continuity plan outline
  • Five general steps to create a BC plan

Once you have a snapshot, develop a plan. Think of creating a plan of loose guidelines instead of a strict code of regulations so personnel can follow an outline yet still adapt to the type of business disruption. Good read!

[Read More]