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 ]

Agile metrics: the ultimate guide

Categories

Tags programming agile monitoring miscellaneous servers

This guide has everything you need to know about agile metrics. So if you want to understand all the different metrics you can measure and how to use them, you’re in the right place. By leontranter.

This guide is broken them up into five categories:

  • Metrics from Agile Project Tools -– these track the items your team are working on
  • Lean Kanban metrics -– these might come from Agile project tools or from other places
  • Metrics from Source Control tools -– these track the commits that developers make to a codebase
  • Metrics from Continuous Integration (CI) and Continuous Delivery (CD) Tools – these track the frequency and quality of builds and automated tests and deployments
  • Business Intelligence Metrics -– these tell you how customers are using your software, how your business is growing, what customers think of your products, and so on

Please remember that these should be chosen and used wisely. And remember –- not everything that can be counted counts, and not everything that counts can be counted. Insightful!

[Read More]

Golang tutorial for Node.js developers: Getting started

Categories

Tags programming software-architecture functional-programming

A tutorial series, which covers the basics of getting started with the Go language, while building an app and exposing it through a REST, GraphQL and GRPC API together. By Tamas Kadlecsik (@tamaskadlecsik); CEO of RisingStack.

Another drawback is that because Go is statically typed and lacks generics, you cannot use basic functional programming niceties such as map, filter, reduce, unless you write them for each type or generate the code for them.

The article covers:

  • Golang Setup
  • net/http with Go
  • Encoding/json
  • Dependency management
  • Build tooling

The source code for the article is also available in GitHub repo.

Go features very nice concurrency primitives and provides excellent speed if used right. However, the number of libraries compared to other platforms is small, and they tend to be young. Good read!

[Read More]

Ten years of Erlang

Categories

Tags programming software-architecture functional-programming

The experience and opinion on Erlang form developer joining Erlang community about 10 years ago. The author covers a few things such as hype phases and how this related to Erlang, the ladder of ideas within the language and how that can impact adoption, what changed in his ten years here, and he’ll finish up with what he thinks Erlang still has to bring to the programming community at large.

The article is split:

  • The hype phase
  • The ladder of ideas, it might look like this:
    • Functional programming
    • Isolated processes and concurrency
    • Reliable concurrency (links, monitors, timeouts)
    • OTP behaviours and other system abstractions
    • How to structure OTP systems
    • How to build releases and handle their life cycle
    • How to never take the system down, and how to operate it
  • What changed
  • Where Erlang goes

Multicore support is now good in Erlang. It used to be that past 2-4 cores, things would start to hit all kinds of bottlenecks that were out of your control as an application developer. Good read!

[Read More]

How to pass HTML content through components with Vue slots

Categories

Tags react javascript web-development programming

This post will introduce you to how data can be passed from the parent component to child components in Vue.js using Vue slots. Written by Nwose Lotanna.

Vue slots are Vue template elements created by the Vue team to provide a platform for template content distribution. It is an implementation of the a content distribution API that was inspired by the Web Components spec draft.

Content distribution is important for many reasons, some of which have to do with structure. With Vue slots, you can structure an HTML interface (like with TypeScript), which you can then use as a guide to build out your components by template injection.

The article then describes:

  • What are Vue slots?
  • Why are Vue slots important?
  • Slots vs. props
  • Vue slot syntax
  • Named slots
  • V-slots syntax
  • Scoped slots

And much more in the article, including explained code examples. The whole code is also available in the GitHub repo. Nice one!

[Read More]

How to deploy a Go web application using Nginx on Ubuntu 18.04

Categories

Tags software linux devops cloud programming golang

The guide by Michael Okoh about deploying a web application in Go which will be useful to many back-end developers.

In order to achieve a production-grade deployment of your Go web application, it’s important that you keep your server secure by installing a TLS/SSL certificate.

The article describes these steps:

  • Building the Go web application
  • Creating a systemd unit file
  • Setting up a reverse proxy with Nginx
  • Testing the application

In this tutorial, you created a simple web application with Go using its standard libraries, set up a reverse proxy using Nginx, and used a SSL certificate on your domain to secure your app. Short but straight to the point guide!

[Read More]

A beginner's guide to natural language processing

Categories

Tags software big-data data-science machine-learning

An article by M. Tim Jones about how natural language processing can help you to converse more naturally with computers.

In 1954, IBM demonstrated the ability to translate Russian sentences into English using machine translation on an IBM 701 mainframe.

Natural language processing (NLP) is one of the most important subfields of machine learning for a variety of reasons. Natural language is the most natural interface between a user and a machine.

The article then describes:

  • History of NLP
  • Early work in NLP
  • Modern approaches
    • Word encodings
    • Recurrent neural networks
    • Reinforcement learning

The importance of NLP is demonstrated by the ever-growing list of applications that use it. NLP provides the most natural interface to computers and to the wealth of unstructured data available online . Interesting read!

[Read More]

Managing a secure JSON Web Token Implementation

Categories

Tags infosec devops json infosec web-development

Daniel Fanara wrote this article about more advanced topics of managing secure JSON Web Tokens (JWT). They are great for representing a user’s authentication / authorization state without needing to maintain a server-side session store.

This makes them great for highly scalable environments since you won’t have to connect to a central location to verify the validity of a token. However, this exposes your applications to another problem that isn’t exactly trivial either.

What do you do when a single token is compromised? Short of invalidating all of your users’ tokens by forcing a global key change, there’s really nothing you can do. There are, however, some best practices you can follow to ensure your tokens remain secure. The article then covers in some detail:

  • Expiring and refreshing tokens
  • Choosing the right signing algorithm
    • Symmetric signing algorithms
    • Asymmetric signing algorithms
  • Managing your signing keys

You will also get credible sources in this article to provide you with accurate best practices and recommendations.

[Read More]

To run or not to run a database on Kubernetes: What to consider

Categories

Tags database devops kubernetes google

Benjamin Good, Solutions Architect, Google Cloud, wrote this piece in which he considers if you should run a database on Kubernetes. Today, more and more applications are being deployed in containers on Kubernetes—so much so that we’ve heard Kubernetes called the Linux of the cloud.

It will be easier to run a database on Kubernetes if it includes concepts like sharding, failover elections and replication built into its DNA (for example: ElasticSearch, Cassandra, or MongoDB).

However the data layer hasn’t gotten much traction with containerization. Handling things like state (the database), availability to other layers of the application, and redundancy for a database can have very specific requirements. That makes it challenging to run a database in a distributed environment.

It is important to remember that pods (the database application containers) are transient, so the likelihood of database application restarts or failovers is higher. Also, some of the more database-specific administrative tasks—backups, scaling, tuning, etc. – are different due to the added abstractions that come with containerization.

Next, consider the function that database is performing in the context of your application and business. Databases that are storing more transient and caching layers are better fits for Kubernetes.

To find out more read article in full. Solid advice!

[Read More]

Home grown IoT - simple DevOps

Categories

Tags functional-programming software iot software-architecture

The guide by Aaron Powell on topic of IoT and DevOps. When it comes to CI/CD (Continuous Integration/Continuous Deployment) for IoT projects it can feel a bit daunting, you’ve got this tiny little computer that you’re trying to get stuff onto, it’s not just “the cloud” that you’re targeting. This is part 7 in series of 8 articles.

The information is split into:

  • Deploying to a Raspberry Pi
  • Introducing IoT Edge
  • Getting the solution ready for DevOps
  • IoT Edge Modules
  • Deployments with IoT Edge
  • Running a Deployment

A Module is an application that is running on your device and is defined in a JSON file. A device may have multiple Modules deployed onto it, but a Module is a single application. You will be deploying containers on Raspberry Pi!

Neat article how to deploy dotnet application on edge. Please check the rest oif the series. Nice one!

[Read More]

Processing satellite image collections in R with the gdalcubes package

Categories

Tags programming data-science big-data

Marius Appel wrote this piece about processing satellite image collections. This blog post introduces the gdalcubes R package, aiming at making the work with collections and time series of satellite imagery easier and more interactive.

Scientists working with collections and time series of satellite imagery quickly run into some of the following problems:

  • Images from different areas of the world have different spatial reference systems (e.g., UTM zones)
  • The pixel size of a single image sometimes differs among its spectral bands / variables
  • Spatially adjacent image tiles often overlap
  • Time series of images are often irregular when the area of interest covers spatial areas larger than the extent of a single image
  • Images from different data products or different satellites are distributed in diverse data formats and structures

The article then explains how to overcome these problemss when using gdalcubes R package. The author uses demo dataset, a collection of 180 Landsat 8 surface reflectance images, covering a small part of the Brazilian Amazon forest. Nice one!

[Read More]