How To Use Flex Layout for Angular

Introduction Flex Layout is a component engine that allows you to create page layouts using CSS Flexbox with a set of directives available to use in your templates. The library is written in pure TypeScript, so no external stylesheets are needed. It also provides a way to specify different directives at different breakpoints to create

How To Use Flex Layout for Angular Read More »

How To Create PHP Development Environments with Docker Compose: A DigitalOcean Workshop Kit

How to Create PHP Development Environments with Docker Compose Workshop Kit Materials This workshop kit is designed to help a technical audience become familiar with Docker Compose and learn to set up a working development environment for a Laravel application using containers. The aim is to provide a complete set of resources for a speaker

How To Create PHP Development Environments with Docker Compose: A DigitalOcean Workshop Kit Read More »

How to Use Position: Sticky for Sidebars with Pure CSS and Bootstrap

Introduction A sticky sidebar is a web design technique to keep the sidebar on the screen even if the user has scrolled past the position where it initially displayed. This is useful for making sub-navigation easily accessible, highlighting your content in your sidebar more as a user scrolls, and potentially increasing your ad impressions, clicks,

How to Use Position: Sticky for Sidebars with Pure CSS and Bootstrap Read More »

How to Troubleshoot and Fix a Brute-Force Attack in WordPress on a DigitalOcean Droplet

Introduction While running a WordPress installation through a hosting service can be a convenient way to start a website, it’s not without security vulnerabilities that may sometimes be hard to troubleshoot. Brute-force attacks, cyberattacks that rapidly work to guess and access personal information like logins or passwords, happen when these vulnerabilities are exploited. Brute-force attacks

How to Troubleshoot and Fix a Brute-Force Attack in WordPress on a DigitalOcean Droplet Read More »

How To Convert React Class Components to Functional Components with React Hooks

Introduction The latest alpha release of React introduced a new concept called Hooks. Hooks were introduced to React to solve common problems. However, they primarily serve as an alternative for classes. With Hooks, you can create functional components that use state and lifecycle methods. Hooks are currently available in React v16.7.0-alpha. There are no plans

How To Convert React Class Components to Functional Components with React Hooks Read More »

How To Use console in Node.js

Introduction In this article, we’ll learn how to use most methods available in the Node.js console class more effectively. Prerequisites This tutorial was verified with Chrome browser version 70.0.3538.77 and Node.js version 8.11.3. Using console.log, console.info, and console.debug The console.log method prints to standard out, whether this is the terminal or browser console.It outputs strings

How To Use console in Node.js Read More »

How to Create an SSH Shortcut

If you are constantly needing to SSH into multiple servers, it can real daunting to remember all the different usernames, hostnames, IP addresses, and even sometimes custom private keys to connect to them. It’s actually extremely easy to create command line shortcuts to solve this problem. There’s two major ways to do it, and we’ll

How to Create an SSH Shortcut Read More »

CSS Units Explained

Introduction CSS has several options for which units to use when determining the size of various CSS properties. Learning all your options for CSS units can be key for styling in a way that’s easy to manage and looks great on any screen. What is a CSS Unit? A CSS unit determines the size of

CSS Units Explained Read More »

CSS vertical-align Property

Introduction vertical-align defines the vertical alignment for the content of a table cell or for an inline element against the rest of the inline flow. vertical-align can take a % or length value, or it can take one of the following 8 keywords: baseline: The default. Baseline of the element aligned to the baseline of

CSS vertical-align Property Read More »

CSS white-space Property

white-space is a CSS property that helps control how whitespace and line breaks within an element’s text are treated. The white-space property can take these values: normal: The default value. Multiple whitespaces are collapsed into one. The text wraps to the next line when needed. nowrap: Multiple whitespaces are collapsed into one, but the text

CSS white-space Property Read More »

CSS3: A Quick Intro

In Web Design and Development, like most fields, you have to evolve to keep up with the times. This is especially true with new features that get added to one of a designers most often used tools, like CSS. CSS3, the latest specification for CSS, has several new features designers can start taking advantage of

CSS3: A Quick Intro Read More »

Styling Form Inputs in CSS With :required, :optional, :valid and :invalid

Introduction When it comes to validating the content of input fields on the frontend, things are much easier now than they they used to be. We can use the :required, :optional, :valid and :invalid pseudo-classes coupled with HTML5 form validation attributes like required or pattern to create very visually engaging results. These pseudo-classes work for

Styling Form Inputs in CSS With :required, :optional, :valid and :invalid Read More »

How To Implement Distributed Tracing with Jaeger on Kubernetes

The author selected the COVID-19 Relief Fund to receive a donation as part of the Write for DOnations program. Introduction Kubernetes and the microservice architectures that it enables can create very efficient and scalable systems. But problems arise when one of these microservices develops performance problems. Typically, we first notice that response times from our

How To Implement Distributed Tracing with Jaeger on Kubernetes Read More »

The CSS :focus-within Pseudo-Class

Introduction Selecting a parent element has long been impossible to do using just CSS, but a pseudo-class, :focus-within, changes that story somewhat. It allows to style an element when it has focus, but also when any of its inner elements (descendants) have focus. A prime example is with a form where you’d want a container

The CSS :focus-within Pseudo-Class Read More »

The Mighty CSS z-index Property

In this article, you’ll learn about how to use the z-index CSS property… The only way to break into the 3rd dimension with CSS! Most of the time when you’re styling things with CSS, it’s on a 2D plane. HTML elements are placed horizontally/vertically on the page like stacking blocks in Tetris. The z-index changes

The Mighty CSS z-index Property Read More »

Introduction to CSS Counters

Introduction In programming, counters are variables that hold a value that increments according to customizable rules. They have many purposes, such as helping to keep tabs on loops by storing the number of times the loop has been executed. Though routinely used in programming languages, counters have not traditionally been included in the syntax for

Introduction to CSS Counters Read More »

How To Host a Website Using Cloudflare and Nginx on Ubuntu 18.04

The author selected the Electronic Frontier Foundation to receive a donation as part of the Write for DOnations program. Introduction Cloudflare is a service that sits between the visitor and the website owner’s server, acting as a reverse proxy for websites. Cloudflare provides a Content Delivery Network (CDN), as well as DDoS mitigation and distributed

How To Host a Website Using Cloudflare and Nginx on Ubuntu 18.04 Read More »

How To Validate Forms in Vue.js

Introduction Form validation, also known as form field validation, ensures that a user fills out all required fields in a web form. If a field has an invalid value, it will display an error message and prevent form submission until the values satisfy all the rules. Template-driven validation is a type of form validation where

How To Validate Forms in Vue.js Read More »

How To Develop a Drupal 9 Website on Your Local Machine Using Docker and DDEV

The author selected the Diversity in Tech Fund to receive a donation as part of the Write for DOnations program. Introduction DDEV is an open-source tool that uses Docker to build local development environments for many different PHP frameworks. Using the power of containerization, DDEV can greatly simplify how you work on multiple projects that

How To Develop a Drupal 9 Website on Your Local Machine Using Docker and DDEV Read More »

How To Connect to a Managed Redis Instance over TLS with Stunnel and redis-cli

Introduction A managed Redis instance can provide benefits like high availability and automated updates. However, any time you make a connection to a remote database server, you run the risk of malicious actors sniffing the sensitive information you send to it. redis-cli, the Redis command line interface, doesn’t natively support connections over TLS, a cryptographic

How To Connect to a Managed Redis Instance over TLS with Stunnel and redis-cli Read More »

How To Remotely Access GUI Applications Using Docker and Caddy on Debian 9

The author selected the Free and Open Source Fund to receive a donation as part of the Write for DOnations program. Introduction Even with the growing popularity of cloud services, the need for running native applications still exists. By using noVNC and TigerVNC, you can run native applications inside a Docker container and access them

How To Remotely Access GUI Applications Using Docker and Caddy on Debian 9 Read More »

How To Remotely Access GUI Applications Using Docker and Caddy on Debian 10

The author selected the Free and Open Source Fund to receive a donation as part of the Write for DOnations program. Introduction Even with the growing popularity of cloud services, the need for running native applications still exists. By using noVNC and TigerVNC, you can run native applications inside a Docker container and access them

How To Remotely Access GUI Applications Using Docker and Caddy on Debian 10 Read More »

How To Set Up Mattermost on Ubuntu 20.04

The author selected the Free and Open Source Fund to receive a donation as part of the Write for DOnations program. Introduction Mattermost is an open source collaboration and messaging platform created with security and configurability in mind providing comparable functionality to Discord or Slack. It offers group, threaded and one-to-one messaging, unlimited search history

How To Set Up Mattermost on Ubuntu 20.04 Read More »

How To Create Drag and Drop Elements with Vanilla JavaScript and HTML

Introduction Dragging-and-dropping is a common user interaction that you can find in many graphical user interfaces. There are pre-existing JavaScript libraries for adding a drag-and-drop feature to your app. However, there may be situations where a library is not available or introduces an overhead or dependency that your project does not need. In these situations,

How To Create Drag and Drop Elements with Vanilla JavaScript and HTML Read More »

How To Use Discord Webhooks to Get Notifications for Your Website Status on Ubuntu 18.04

The author selected the Apache Software Foundation to receive a donation as part of the Write for DOnations program. Introduction When you have critical websites you’ll want to know when they are experiencing any issues so you can fix them before there’s an impact on your users. One way to receive notifications is to set

How To Use Discord Webhooks to Get Notifications for Your Website Status on Ubuntu 18.04 Read More »

How To Set Up a Remote Desktop with X2Go on Ubuntu 20.04

The author selected Software in the Public Interest (SPI) to receive a donation as part of the Write for DOnations program. Introduction Usually, Linux-based servers don’t come with a graphical user interface (GUI) pre-installed. Whenever you want to run GUI applications on your instance, the typical solution is to employ Virtual Network Computing (VNC). Unfortunately,

How To Set Up a Remote Desktop with X2Go on Ubuntu 20.04 Read More »

How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 20.04 [Quickstart]

Introduction In this quickstart guide, we’ll install a LAMP stack on an Ubuntu 20.04 server. For a more detailed version of this tutorial, with more explanations of each step, please refer to How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Ubuntu 20.04 Prerequisites To follow this guide, you’ll need access to an Ubuntu

How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 20.04 [Quickstart] Read More »

How To Install Django and Set Up a Development Environment on Ubuntu 16.04

Introduction Django is a free and open-source web framework written in Python that adheres to the model template view (MTV) software architectural pattern. The MTV pattern is Django’s take on the model–view–controller (MVC) pattern. According to the Django Software Foundation, the model is the single definitive source of your data, the view describes the data

How To Install Django and Set Up a Development Environment on Ubuntu 16.04 Read More »

Loading Vuex Modules Dynamically

Vuex is an easy to use and performant solution to handle state management. It makes it a breeze to manage large-scale Vue.js applications and ensures a predictable way to mutate the state by exposing a store. You may already know about Vuex, but if you don’t Joshua Bemenderfer gave us a great introduction. You can

Loading Vuex Modules Dynamically Read More »

How To Install Python 3 and Set Up a Programming Environment on Ubuntu 20.04 [Quickstart]

Introduction Python is a flexible and versatile programming language, with strengths in scripting, automation, data analysis, machine learning, and back-end development. This tutorial will walk you through installing Python and setting up a programming environment on an Ubuntu 20.04 server. For a more detailed version of this tutorial, with more thorough explanations of each step,

How To Install Python 3 and Set Up a Programming Environment on Ubuntu 20.04 [Quickstart] Read More »

How To Install Python 3 and Set Up a Programming Environment on Ubuntu 18.04 [Quickstart]

###Introduction Python is a flexible and versatile programming language, with strengths in scripting, automation, data analysis, machine learning, and back-end development. This tutorial will walk you through installing Python and setting up a programming environment on an Ubuntu 18.04 server. For a more detailed version of this tutorial, with better explanations of each step, please

How To Install Python 3 and Set Up a Programming Environment on Ubuntu 18.04 [Quickstart] Read More »

How To Set Up and Configure a Certificate Authority (CA) On CentOS 8

Introduction A Certificate Authority (CA) is an entity responsible for issuing digital certificates to verify identities on the internet. Although public CAs are a popular choice for verifying the identity of websites and other services that are provided to the general public, private CAs are typically used for closed groups and private services. Building a

How To Set Up and Configure a Certificate Authority (CA) On CentOS 8 Read More »

How To Install MariaDB on CentOS 8

Introduction MariaDB is an open-source database management system, commonly used as an alternative for the MySQL portion of the popular LAMP (Linux, Apache, MySQL, PHP/Python/Perl) stack. It is intended to be a drop-in replacement for MySQL. In this tutorial, we will explain how to install the latest version of MariaDB on a CentOS 8 server.

How To Install MariaDB on CentOS 8 Read More »

Mutable Immutable JavaScript

When I first dived into JavaScript and programming; I never really thought about immutable data. I would say animal is panda, then animal is lion. var animal = ‘panda’;animal = ‘lion’; I was free to do whatever I wanted with my data! But… things changed… I grew up. People started telling me: “you should always

Mutable Immutable JavaScript Read More »

How To Set Up an Elasticsearch, Fluentd and Kibana (EFK) Logging Stack on Kubernetes

Introduction When running multiple services and applications on a Kubernetes cluster, a centralized, cluster-level logging stack can help you quickly sort through and analyze the heavy volume of log data produced by your Pods. One popular centralized logging solution is the Elasticsearch, Fluentd, and Kibana (EFK) stack. Elasticsearch is a real-time, distributed, and scalable search

How To Set Up an Elasticsearch, Fluentd and Kibana (EFK) Logging Stack on Kubernetes Read More »

How To Optimize Nginx Configuration

Introduction Nginx Nginx is a fast and lightweight alternative to the sometimes overbearing Apache 2. However, Nginx just like any kind of server or software must be tuned to help attain optimal performance. Requirements A fresh Debian 7 droplet with the intial setup completed. The droplet must also have a freshly installed and configured Nginx

How To Optimize Nginx Configuration Read More »

Sysadmin eBook: Making Servers Work

Download the Complete eBook! Making Servers Work: A Practical Guide to System Administration eBook in EPUB format Making Servers Work: A Practical Guide to System Administration eBook in PDF format Introduction to the eBook This book highlights practical sysadmin skills, common architectures that you’ll encounter, and best practices that apply to automating and running systems

Sysadmin eBook: Making Servers Work Read More »

How To Use the PDO PHP Extension to Perform MySQL Transactions in PHP on Ubuntu 18.04

The author selected Open Sourcing Mental Illness to receive a donation as part of the Write for DOnations program. Introduction A MySQL transaction is a group of logically related SQL commands that are executed in the database as a single unit. Transactions are used to enforce ACID (Atomicity, Consistency, Isolation, and Durability) compliance in an

How To Use the PDO PHP Extension to Perform MySQL Transactions in PHP on Ubuntu 18.04 Read More »

More Advanced Routing with Vue: Transitions Using Vue Router

Last time we covered advanced Vue Router topics we discussed Navigation Guards and Redirects. This time we’ll be tackling how to implement Vue Router Transitions. We’ve already covered Vue Transitions in Understanding Vue.js Transitions, so we’ll use that as a starting point. Combining Vue Router with transitions will allow us to customize the user’s experience

More Advanced Routing with Vue: Transitions Using Vue Router Read More »

Beginner Sorting Algorithms in JavaScript: Bubble, Selection & Insertion Sort

Having your datasets arranged all willy-nilly will only add more time and resources to manage and search through. Whether your data is sorted or not will directly affect what search methods you can use and can mean the difference between a search taking a million operations or taking 10, like with Binary Search. For simplicity’s

Beginner Sorting Algorithms in JavaScript: Bubble, Selection & Insertion Sort Read More »

How To Install and Use Radamsa to Fuzz Test Programs and Network Services on Ubuntu 18.04

The author selected the Electronic Frontier Foundation Inc to receive a donation as part of the Write for DOnations program. Introduction Security threats are continually becoming more sophisticated, so developers and systems administrators need to take a proactive approach in defending and testing the security of their applications. A common method for testing the security

How To Install and Use Radamsa to Fuzz Test Programs and Network Services on Ubuntu 18.04 Read More »

A Tour of the JavaScript Permissions API

If you have ever created a web application which requires different features (like push notifications, webcam access, midi access), you probably noticed that their APIs look very different. // for the geolocation API you need to call getCurrentPosition to check if geolocation is accessiblenavigator.geolocation.getCurrentPosition(gotLocation, didNotGetLocation);// for notifications we can directly check on the Notification objectif

A Tour of the JavaScript Permissions API Read More »

Decoding the Vue CLI

The idea behind a CLI (Command Line Interface) is to use simple, editable commands in order to produce a greater output. The Vue CLI is no different. When a new project begins, the last thing a developer should worry about is project scaffolding. Luckily, the Vue team has bundled scaffolding, prototyping, and a variety of

Decoding the Vue CLI Read More »

How To Deploy and Manage Your DNS Using DNSControl on Debian 10

The author selected the Electronic Frontier Foundation Inc to receive a donation as part of the Write for DOnations program. Introduction DNSControl is an infrastructure-as-code tool that allows you to deploy and manage your DNS zones using standard software development principles, including version control, testing, and automated deployment. DNSControl was created by Stack Exchange and

How To Deploy and Manage Your DNS Using DNSControl on Debian 10 Read More »

How to Use Ansible Roles to Abstract your Infrastructure Environment

Introduction Ansible is a configuration management tool that is designed to automate controlling servers for administrators and operations teams. With Ansible you can use a single central server to control and configure many different remote systems using SSH and Python as only requirements. Ansible carries out tasks on servers that it manages based on task

How to Use Ansible Roles to Abstract your Infrastructure Environment Read More »

How To Set Up the code-server Cloud IDE Platform on Ubuntu 18.04 [Quickstart]

Introduction code-server is Microsoft Visual Studio Code running on a remote server and accessible directly from your browser. This means that you can use various devices, running different operating systems, and always have a consistent development environment on hand. In this tutorial, you will set up the code-server cloud IDE platform on your Ubuntu 18.04

How To Set Up the code-server Cloud IDE Platform on Ubuntu 18.04 [Quickstart] Read More »

How To Use Ansible to Install and Set Up WordPress with LAMP on Ubuntu 18.04

Introduction Server automation now plays an essential role in systems administration, due to the disposable nature of modern application environments. Configuration management tools such as Ansible are typically used to streamline the process of automating server setup by establishing standard procedures for new servers while also reducing human error associated with manual setups. Ansible offers

How To Use Ansible to Install and Set Up WordPress with LAMP on Ubuntu 18.04 Read More »

How To Optimize MySQL Queries with ProxySQL Caching on Ubuntu 16.04

The author selected the Free Software Foundation to receive a donation as part of the Write for DOnations program. Introduction ProxySQL is a SQL-aware proxy server that can be positioned between your application and your database. It offers many features, such as load-balancing between multiple MySQL servers and serving as a caching layer for queries.

How To Optimize MySQL Queries with ProxySQL Caching on Ubuntu 16.04 Read More »

How to Implement Password Verification Using Laravel Form Request

Introduction Laravel form requests are special classes that extend the functionality of regular request classes, enabling advanced validation features. Form requests also help to keep your controller actions a lot cleaner, because you can move all your validation logic to the form request class. Another benefit is that it allows you to filter requests before

How to Implement Password Verification Using Laravel Form Request Read More »

JavaScript Functional Programming Explained: Partial Application and Currying

Introduction With the adoption of the Redux JavaScript library, the Reason syntax extension and toolchain, and the Cycle JavaScript framework, functional programming with JavaScript is becoming increasingly relevant. Two important ideas with roots in functional thought are currying, which transforms a function of multiple arguments into a series of function calls, and partial application, which

JavaScript Functional Programming Explained: Partial Application and Currying Read More »

How To Build a Portfolio Image Carousel with Synchronized Sliders on a Web Page

Introduction When creating a professional website, using an image carousel to showcase your portfolio will display your experience with front-end development in a fun and creative way. This tutorial will walk you through the essential steps of creating and styling this web page component. You will write the HTML, style it with CSS, and use

How To Build a Portfolio Image Carousel with Synchronized Sliders on a Web Page Read More »

Web Accessibility For Beginners

Introduction Building accessible applications or websites is not the norm today. This is because the idea of accessibility is known to most developers, while in actual sense it is often neglected and not a common practice today in the world of web development. According to World Bank Statistics about 15% of the world population experience

Web Accessibility For Beginners Read More »

Understanding Mutations in GraphQL

This is a continuation of a series on GraphQL Actions. The previous tutorial explored GraphQL Queries. This time, we will take a closer look at Mutations. There’s a lot of similarities in the way GraphQL Queries and Mutations work, however, Mutations are more about mutating data than querying for it. In this article, we’ll dive

Understanding Mutations in GraphQL Read More »

How To Solve Large-Scale CSS Bottlenecks with ITCSS and BEM

###IntroductionOn frontend codebase projects, requirements and sometimes scopes can change frequently. When requirements change and you adjust the stylesheet or extend the styles of a selector in a particular page, such changes often affects other views that share similar styles. This may lead to many hours of specificity wars while trying to override styles. That

How To Solve Large-Scale CSS Bottlenecks with ITCSS and BEM Read More »

6 Optimization Tips for React Apps

###IntroductionIn the last few years JavaScript frameworks have completely changed the way we build apps, and React has had its fair share of the conversion process. Optimizing page load time is important because the time a page takes to load directly correlates with bounce and conversion rates. In this tutorial we will take a look

6 Optimization Tips for React Apps Read More »

Faster WordPress Sites With Gatsby

Talk about the latest cutting-edge web technologies, and you find some impressive names like React.js, Vue.js, Next.js, and so on. They have opened new gateways and approaches to building websites that can serve content to users quickly. One framework that can increase overall site speed and load times is Gatsby.js. Goals of a Fast Website

Faster WordPress Sites With Gatsby Read More »

How To Test Your Ansible Deployment with InSpec and Kitchen

The author selected the Diversity in Tech Fund to receive a donation as part of the Write for DOnations program. Introduction InSpec is an open-source auditing and automated testing framework used to describe and test for regulatory concerns, recommendations, or requirements. It is designed to be human-readable and platform-agnostic. Developers can work with InSpec locally

How To Test Your Ansible Deployment with InSpec and Kitchen Read More »

How To Acquire a Let’s Encrypt Certificate Using Ansible on Ubuntu 18.04

The author selected the Electronic Frontier Foundation to receive a donation as part of the Write for DOnations program. Introduction Modern infrastructure management is best done using automated processes and tools. Acquiring a Let’s Encrypt certificate using the standard Certbot client is quick and easy, but is generally a task that has to be done

How To Acquire a Let’s Encrypt Certificate Using Ansible on Ubuntu 18.04 Read More »

Using toLocaleString with Numbers, Arrays or Dates in JavaScript

toLocaleString is a built-in JavaScript method used to convert the date and time to a string using the system locales. It can be used with the following JavaScript types : Dates/Time Numbers Objects Arrays toLocaleString with Dates and Time With dates/time objects, toLocaleString has a syntax like this and returns a string : dateObject.toLocaleString(locales, options)

Using toLocaleString with Numbers, Arrays or Dates in JavaScript Read More »

Troubleshooting Ionic Bugs

Below is a brief overview on how to get started troubleshooting bugs in your Ionic projects. Introduction There are two main types of bugs that occur when developing in Ionic: Web bugs The first type are bugs that can be reproduced in the browser and are not related to the native functionality of the app.

Troubleshooting Ionic Bugs Read More »

How To Perform Sentiment Analysis in Python 3 Using the Natural Language Toolkit (NLTK)

The author selected the Open Internet/Free Speech fund to receive a donation as part of the Write for DOnations program. Introduction A large amount of data that is generated today is unstructured, which requires processing to generate insights. Some examples of unstructured data are news articles, posts on social media, and search history. The process

How To Perform Sentiment Analysis in Python 3 Using the Natural Language Toolkit (NLTK) Read More »

Basic Animations in Flutter

While Flutter has an enormous amount of amazing packages for creating animation effects for your apps, there are also built-in methods for manually creating more fine-tuned animations. Prerequisites For our cross-screen animations I’ll be assuming that you already know how to create basic routes, just to keep things brief. You can review the docs here

Basic Animations in Flutter Read More »

Module Augmentation in TypeScript

Before getting into module augmentation, let’s look at some TypeScript merging principles which will become useful as we progress. In this post we talked about merging interfaces with interfaces. Additionally, we can merge interfaces with classes too. Let’s look at an example. class Food { cheese: string;}interface Food { bacon: string;}const food = new Food();food.bacon

Module Augmentation in TypeScript Read More »

Understanding Specificity in CSS

Specificity in CSS refers to the how browsers determine the importance, relevance, and “seniority” of CSS styles. Here we’ll look at all the CSS styling types and use the company analogy to understand how competing styles get resolved. CSS Selector Overview There are multiple ways to select the elements you’re trying to style in CSS.

Understanding Specificity in CSS Read More »

react-notifications-component, a Powerful React Notifications Library

In this article, we’ll look at the new release of react-notifications-component (v2.0.6). It’s a React component that provides you with a fully-featured notification system that will save you the time effort of building one yourself. Let’s start by installing it, along with animate.css: npm install –save react-notifications-component animate.css We’re using animate.css for animating how the

react-notifications-component, a Powerful React Notifications Library Read More »

How To Rewrite URLs with mod_rewrite for Apache on Debian 10

Introduction Apache’s mod_rewrite module lets you rewrite URLs in a cleaner fashion, translating human-readable paths into code-friendly query strings. It also lets you rewrite URLs based on conditions. An .htaccess file lets you create and apply rewrite rules without accessing server configuration files. By placing the .htaccess file in the root of your web site,

How To Rewrite URLs with mod_rewrite for Apache on Debian 10 Read More »

How To Create a Self-Signed SSL Certificate for Apache in Debian 10

Introduction TLS, or transport layer security, and its predecessor SSL, which stands for secure sockets layer, are web protocols used to wrap normal traffic in a protected, encrypted wrapper. Using this technology, servers can send traffic safely between servers and clients without the possibility of messages being intercepted by outside parties. The certificate system also

How To Create a Self-Signed SSL Certificate for Apache in Debian 10 Read More »

Using Airtable With Gatsby

I first discovered Airtable in late 2018, and was immediately blown away. For those not already familiar with it yet, Airtable is a cloud-based collaborative database-spreadsheet hybrid application. It offers a flexible and intuitive GUI, reasonable prices (along with a generous free tier), and a full REST API with excellent auto-generated documentation. It also works

Using Airtable With Gatsby Read More »

How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on Debian 10

Introduction Let’s Encrypt is a service that offers free SSL certificates through an automated API. The most popular Let’s Encrypt client is EFF’s Certbot client. Certbot offers a variety of ways to validate your domain, fetch certificates, and automatically configure Apache and Nginx. In this tutorial, we’ll discuss Certbot’s standalone mode and how to use

How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on Debian 10 Read More »

How To Create a Self-Signed SSL Certificate for Nginx on Debian 10

Introduction TLS, or transport layer security, and its predecessor SSL, which stands for secure sockets layer, are web protocols used to wrap normal traffic in a protected, encrypted wrapper. Using this technology, servers can send traffic safely between the server and clients without the possibility of the messages being intercepted by outside parties. The certificate

How To Create a Self-Signed SSL Certificate for Nginx on Debian 10 Read More »

How To Install Go on Debian 10

Introduction Go, also known as golang, is a modern, open-source programming language developed by Google. Go tries to make software development safe, fast and approachable to help you build reliable and efficient software. This tutorial will guide you through downloading and installing Go from source, as well as compiling and executing a “Hello, World!” program

How To Install Go on Debian 10 Read More »

How To Set Up a Node.js Application for Production on Debian 10

Introduction Node.js is an open-source JavaScript runtime environment for building server-side and networking applications. The platform runs on Linux, macOS, FreeBSD, and Windows. Though you can run Node.js applications at the command line, this tutorial will focus on running them as a service. This means that the applications will restart on reboot or failure and

How To Set Up a Node.js Application for Production on Debian 10 Read More »

How To Install the Anaconda Python Distribution on Debian 10

Introduction Anaconda is an open-source package manager, environment manager, and distribution of the Python and R programming languages. Designed for data science and machine learning workflows, Anaconda is commonly used for large-scale data processing, scientific computing, and predictive analytics. Offering a collection of over 1,000 packages to support users working with data, Anaconda is available

How To Install the Anaconda Python Distribution on Debian 10 Read More »

What’s New in Debian 10 Buster

Introduction The Debian operating system’s most recent stable release, version 10 (Buster), was published on July 6, 2019, and will be supported until 2022. Long term support may be provided through 2024 as part of the Debian LTS Project. This guide is a brief overview of the new features and significant changes to Debian since

What’s New in Debian 10 Buster Read More »

How To Set Up Buildbot on FreeBSD

The author selected the Open Internet/Free Speech Fund to receive a donation as part of the Write for DOnations program. Introduction Buildbot is a job scheduling system commonly used for the purpose of continuous integration (CI). CI is a software development practice that typically comprises automatically building and testing your software on a regular basis

How To Set Up Buildbot on FreeBSD Read More »

Understanding CSS Float

In this article, learn how to use CSS float positioning, as well as some of the pitfalls when using it. Newbies to CSS usually have a difficult time grasping how float positioning works. This is probably because people tend to overuse it, or many times they’re using a CSS framework that uses it waaaay too

Understanding CSS Float Read More »

How To Install Go on Debian 9

Introduction Go, also known as golang, is a modern, open-source programming language developed by Google. Increasingly popular for many applications, Go takes a minimalist approach to development, helping you build reliable and efficient software. This tutorial will guide you through downloading and installing Go, as well as compiling and executing a basic “Hello, World!” program

How To Install Go on Debian 9 Read More »

How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on CentOS 7

Introduction Let’s Encrypt is a service offering free SSL certificates through an automated API. The most popular Let’s Encrypt client is EFF’s Certbot. Certbot offers a variety of ways to validate your domain, fetch certificates, and automatically configure Apache and Nginx. In this tutorial, we’ll discuss Certbot’s standalone mode and how to use it to

How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on CentOS 7 Read More »

How to Install and Secure the Mosquitto MQTT Messaging Broker on Debian 9

Introduction MQTT is a machine-to-machine messaging protocol, designed to provide lightweight publish/subscribe communication to “Internet of Things” devices. It is commonly used for geo-tracking fleets of vehicles, home automation, environmental sensor networks, and utility-scale data collection. Mosquitto is a popular MQTT server (or broker, in MQTT parlance) that has great community support and is easy

How to Install and Secure the Mosquitto MQTT Messaging Broker on Debian 9 Read More »

How To Add Swap Space on Debian 9

Introduction One of the easiest way of guarding against out-of-memory errors in applications is to add some swap space to your server. In this guide, we will cover how to add a swap file to a Debian 9 server. Warning: Although swap is generally recommended for systems using traditional spinning hard drives, using swap with

How To Add Swap Space on Debian 9 Read More »

Angular MVC – A Primer

When designing software with a user interface, it is important to structure the code in a way that makes it easy to extend and maintain. Over time, there have been a few approaches in separating out responsibilities of the different components of an application. Although there is plenty of literature on these design patterns around,

Angular MVC – A Primer Read More »

Using Props with Svelte

Props, popular with other frameworks such as React and Vue.js, are a very efficient way to enable component communication. Props are used in Svelte as you’d expect. They are passed top-down from parent components to children and are used to specify data that the component can consume to inform what it renders in the DOM.

Using Props with Svelte Read More »

How To Secure Apache with Let’s Encrypt on CentOS 7

Introduction Let’s Encrypt is a Certificate Authority (CA) that provides free certificates for Transport Layer Security (TLS) encryption, thereby enabling encrypted HTTPS on web servers. It simplifies the process of creation, validation, signing, installation, and renewal of certificates by providing a software client that automates most of the steps—Certbot. In this tutorial, you will use

How To Secure Apache with Let’s Encrypt on CentOS 7 Read More »

How To Build a Search Bar with RxJS

The author selected Mozilla Foundation to receive a donation as part of the Write for DOnations program. Introduction Reactive Programming is a paradigm concerned with asynchronous data streams, in which the programming model considers everything to be a stream of data spread over time. This includes keystrokes, HTTP requests, files to be printed, and even

How To Build a Search Bar with RxJS Read More »

How To Install and Configure Zabbix to Securely Monitor Remote Servers on Ubuntu 18.04

The author selected the Open Source Initiative to receive a donation as part of the Write for DOnations program. Introduction Zabbix is open-source monitoring software for networks and applications. It offers real-time monitoring of thousands of metrics collected from servers, virtual machines, network devices, and web applications. These metrics can help you determine the current

How To Install and Configure Zabbix to Securely Monitor Remote Servers on Ubuntu 18.04 Read More »

How To Build and Deploy a GraphQL Server with Node.js and MongoDB on Ubuntu 18.04

The author selected the Wikimedia Foundation to receive a donation as part of the Write for DOnations program. Introduction GraphQL was publicly released by Facebook in 2015 as a query language for APIs that makes it easy to query and mutate data from different data collections. From a single endpoint, you can query and mutate

How To Build and Deploy a GraphQL Server with Node.js and MongoDB on Ubuntu 18.04 Read More »

How To Install the Anaconda Python Distribution on Ubuntu 18.04

Introduction Designed for data science and machine learning workflows, Anaconda is an open-source package manager, environment manager, and distribution of the Python and R programming languages. It is commonly used for large-scale data processing, scientific computing, and predictive analytics. Offering a collection of over 1,000 data science packages, Anaconda is available in both free and

How To Install the Anaconda Python Distribution on Ubuntu 18.04 Read More »

How To Apply Computer Vision to Build an Emotion-Based Dog Filter in Python 3

The author selected Girls Who Code to receive a donation as part of the Write for DOnations program. Introduction Computer vision is a subfield of computer science that aims to extract a higher-order understanding from images and videos. This field includes tasks such as object detection, image restoration (matrix completion), and optical flow. Computer vision

How To Apply Computer Vision to Build an Emotion-Based Dog Filter in Python 3 Read More »

How To Audit a PostgreSQL Database with InSpec on Ubuntu 18.04

The author selected the Free and Open Source Fund to receive a donation as part of the Write for DOnations program. Introduction InSpec is an open-source, automated testing framework for testing and auditing your system to ensure the compliance of integration, security, and other policy requirements. Developers can test the actual state of their infrastructure

How To Audit a PostgreSQL Database with InSpec on Ubuntu 18.04 Read More »

How To Probe the Depths of Nautically-Themed Open-Source Projects Using Moby Dick

Introduction Despite being a commercial failure after its first publication, Herman Melville’s allegorical adventure novel Moby-Dick; or, The Whale is today one of the most popular and influential novels in the American canon. Artists as diverse as William Faulkner, Ralph Ellison, and Bob Dylan have acknowledged the novel’s impact on their work, and one can

How To Probe the Depths of Nautically-Themed Open-Source Projects Using Moby Dick Read More »

Ionic 4.1 and React: Navigation

Navigating between pages is a core feature of any mobile application. Let’s look at how we can achieve this with React, React Router and Ionic 4. For this article, I’m going to assume that you have a React and Ionic 4 application already up and running. If you haven’t done this yet – visit my

Ionic 4.1 and React: Navigation Read More »

A Quick Introduction to Hyperapp

Hyperapp is a very small micro-framework used to build declarative web applications. It’s only 1kB in size and the API is similar to React’s, perfect, right?! We’ll build a small counter app to demonstrate how Hyperapp works. New Hyper project To get started, we can create a new Node application and install hyperapp. We’ll then

A Quick Introduction to Hyperapp Read More »

Using Angular Routing in Ionic 4

The Router module is one of the most important in the Angular library. Paired with Ionic 4, you can be unstoppable. Here’s the rundown: Background One of Ionic 4’s key features is its capability to use Angular routing. The Angular router implements a path/component lookup. In other words, Angular routing works like URLs on a

Using Angular Routing in Ionic 4 Read More »

How To Build a Machine Learning Classifier in Python with Scikit-learn

Introduction Machine learning is a research field in computer science, artificial intelligence, and statistics. The focus of machine learning is to train algorithms to learn patterns and make predictions from data. Machine learning is especially valuable because it lets us use computers to automate decision-making processes. You’ll find machine learning applications everywhere. Netflix and Amazon

How To Build a Machine Learning Classifier in Python with Scikit-learn Read More »

How To Install and Use TensorFlow on Ubuntu 18.04

Introduction TensorFlow is open-source machine learning software used to train neural networks.TensorFlow’s neural networks are expressed in the form of stateful dataflow graphs. Each node in the graph represents the operations performed by neural networks on multi-dimensional arrays. These multi-dimensional arrays are commonly known as “tensors,” hence the name TensorFlow. TensorFlow is a deep learning

How To Install and Use TensorFlow on Ubuntu 18.04 Read More »

How To Use Web APIs in Python 3

Introduction An API, or Application Program Interface, enables developers to integrate one app with another. They expose some of a program’s inner workings in a limited way. You can use APIs to get information from other programs or to automate things you normally do in your web browser. Sometimes you can use APIs to do

How To Use Web APIs in Python 3 Read More »

What’s New in vue-styleguidist 3.0

Vue Styleguidist is a Node package to automatically create documentation for your Vue Components. Alex Jover Morales presented it last year on Alligator.io. Since last February, vue-styleguidist has evolved. It’s time for a refresher. The new documentation website powered by VuePress will help you start documenting. Vue-styleguidist 3 brings a significant performance boost. vue-docgen-api went

What’s New in vue-styleguidist 3.0 Read More »

Introduction to React 360

React 360 (or React VR) is a library used to create virtual reality experiences with React and uses Three.js for rendering. As it is a React project, the API should be familiar to those that already know React. Usage of React 360 is similar to that of React Native, it is a library that uses

Introduction to React 360 Read More »

How To Configure Multi-Factor Authentication on Ubuntu 18.04

The author selected the Electronic Frontier Foundation to receive a donation as part of the Write for DOnations program. Introduction Two-factor authentication (2FA) is an authentication method that requires entering more than one piece of information to successfully log in to an account or device. In addition to entering a username and password combination, 2FA

How To Configure Multi-Factor Authentication on Ubuntu 18.04 Read More »

How To Build a Weather App with Angular, Bootstrap, and the APIXU API

The author selected NPower to receive a donation as part of the Write for DOnations program. Introduction Angular is a front-end web framework built by Google. It allows developers to build single-page applications modeled around a model-view-controller (MVC) or model-view-viewmodel (MVVM) software architectural pattern. This architecture divides applications into different, but connected parts allowing for

How To Build a Weather App with Angular, Bootstrap, and the APIXU API Read More »

Manage State in Angular with NGXS

As front-end applications become increasingly complex, with the potential of multiple actors affecting the global state of the application in different ways, it becomes easy to lose control of what’s going on with your state. If you’ve never had to worry about managing global state in your JavaScript application, congratulations! You are one of the

Manage State in Angular with NGXS Read More »

An Introduction to Service Meshes

Introduction A service mesh is an infrastructure layer that allows you to manage communication between your application’s microservices. As more developers work with microservices, service meshes have evolved to make that work easier and more effective by consolidating common management and administrative tasks in a distributed setup. Taking a microservice approach to application architecture involves

An Introduction to Service Meshes Read More »

Bias-Variance for Deep Reinforcement Learning: How To Build a Bot for Atari with OpenAI Gym

The author selected Girls Who Code to receive a donation as part of the Write for DOnations program. Introduction Reinforcement learning is a subfield within control theory, which concerns controlling systems that change over time and broadly includes applications such as self-driving cars, robotics, and bots for games. Throughout this guide, you will use reinforcement

Bias-Variance for Deep Reinforcement Learning: How To Build a Bot for Atari with OpenAI Gym Read More »

How To Install YunoHost on Debian 9

The author selected the Mozilla Foundation to receive a donation as part of the Write for DOnations program. Introduction YunoHost is an open-source platform that facilitates the seamless installation and configuration of self-hosted web applications, including webmail clients, password managers, and even WordPress sites. Self-hosting webmail and other applications provides privacy and control over your

How To Install YunoHost on Debian 9 Read More »

Using Storybook with React & Redux

Storybook allows you to develop UI components in isolation, which can improve component reuse, testability, and development speed. Along with these developer experience (DX) benefits, Storybook works nicely with traditional component development and doesn’t require changes to core functionality to display, test, and document your component library. It can also provide further extension through “addons”

Using Storybook with React & Redux Read More »

How To Set Up a Private Docker Registry on Ubuntu 18.04

The author selected the Apache Software Foundation to receive a donation as part of the Write for DOnations program. Introduction Docker Registry is an application that manages storing and delivering Docker container images. Registries centralize container images and reduce build times for developers. Docker images guarantee the same runtime environment through virtualization, but building an

How To Set Up a Private Docker Registry on Ubuntu 18.04 Read More »

How To Install and Secure Memcached on Ubuntu 18.04

Introduction Memory object caching systems like Memcached can optimize back-end database performance by temporarily storing information in memory, retaining frequently or recently requested records. In this way, they reduce the number of direct requests to your databases. Because systems like Memcached can contribute to denial of service attacks if improperly configured, it is important to

How To Install and Secure Memcached on Ubuntu 18.04 Read More »

How To Set Up Multi-Node Deployments With Rancher 2.1, Kubernetes, and Docker Machine on Ubuntu 18.04

The author selected Code Org to receive a donation as part of the Write for DOnations program. Introduction Rancher is a popular open-source container management platform. Released in early 2018, Rancher 2.X works on Kubernetes and has incorporated new tools such as multi-cluster management and built-in CI pipelines. In addition to the enhanced security, scalability,

How To Set Up Multi-Node Deployments With Rancher 2.1, Kubernetes, and Docker Machine on Ubuntu 18.04 Read More »

How To Install and Configure an Apache ZooKeeper Cluster on Ubuntu 18.04

The author selected Wikimedia Foundation Inc. to receive a donation as part of the Write for DOnations program. Introduction Apache ZooKeeper is open-source software that enables resilient and highly reliable distributed coordination. It is commonly used in distributed systems to manage configuration information, naming services, distributed synchronization, quorum, and state. In addition, distributed systems rely

How To Install and Configure an Apache ZooKeeper Cluster on Ubuntu 18.04 Read More »

React Keys and You

Keys are an important aspect to rendering collections. React uses component keys to determine which of the components in a collection needs to be re-rendered instead of just re-rendering the entire set of components every time anything changes. This simple but powerful bit of functionality helps keep your React app snappy and that’s a good

React Keys and You Read More »

How To Install Elasticsearch, Logstash, and Kibana (Elastic Stack) on CentOS 7

The author selected Software in the Public Interest to receive a donation as part of the Write for DOnations program. Introduction The Elastic Stack — formerly known as the ELK Stack — is a collection of open-source software produced by Elastic which allows you to search, analyze, and visualize logs generated from any source in

How To Install Elasticsearch, Logstash, and Kibana (Elastic Stack) on CentOS 7 Read More »

Testing Vue with Jest

The importance of testing Vue.js applications shouldn’t be understated and Jest makes this easier than ever. As we’re inside of the Vue.js environment, we’ll also be using vue-test-utils to make it easy when interfacing with native Vue elements. Project Setup Setting up our testing environment is easy. In previous versions of the Vue.js CLI, we

Testing Vue with Jest Read More »

Introduction to React Hooks

Function components are great, but they are limited to do exactly what they are told by way of properties. The moment you need them to be mindful of their state, you are forced to rewrite them as class components. Fortunately, a lot of class component-only features are making their way to function components. One such

Introduction to React Hooks Read More »

How To Set Up a Remote Database to Optimize Site Performance with MySQL on Ubuntu 18.04

Introduction As your application or website grows, there may come a point where you’ve outgrown your current server setup. If you are hosting your web server and database backend on the same machine, it may be a good idea to separate these two functions so that each can operate on its own hardware and share

How To Set Up a Remote Database to Optimize Site Performance with MySQL on Ubuntu 18.04 Read More »

How To Install Elasticsearch, Logstash, and Kibana (Elastic Stack) on Ubuntu 16.04

Introduction The Elastic Stack — formerly known as the ELK Stack — is a collection of open-source software produced by Elastic which allows you to search, analyze, and visualize logs generated from any source in any format, a practice known as centralized logging. Centralized logging can be very useful when attempting to identify problems with

How To Install Elasticsearch, Logstash, and Kibana (Elastic Stack) on Ubuntu 16.04 Read More »

How to Create a DigitalOcean Droplet from an Ubuntu ISO Format Image

Introduction DigitalOcean’s Custom Images feature allows you to bring your virtual disk images from an on-premise environment or another cloud platform to DigitalOcean and use them to start DigitalOcean Droplets. As described in the Custom Images documentation, the following image types are supported natively by the Custom Images upload tool: Raw (.img) qcow2 VHDX VDI

How to Create a DigitalOcean Droplet from an Ubuntu ISO Format Image Read More »

How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Debian 8

Introduction The “LAMP” stack of software, consisting of the Linux operating system, Apache web server, MySQL database, and PHP scripting language, is a great foundation for web or application development. Installed together, this software stack enables your server to host dynamic websites and web applications. In this tutorial, we’ll install a LAMP stack on a

How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Debian 8 Read More »

How to Deploy a Symfony 4 Application to Production with LEMP on Ubuntu 18.04

The author selected Software in the Public Interest Inc to receive a donation as part of the Write for DOnations program. Introduction Symfony is an open-source PHP framework with an elegant structure and a reputation for being a suitable framework to kick-start any project irrespective of its size. As a set of reusable components, its

How to Deploy a Symfony 4 Application to Production with LEMP on Ubuntu 18.04 Read More »

How To Provision and Manage Remote Docker Hosts with Docker Machine on Ubuntu 18.04

Introduction Docker Machine is a tool that makes it easy to provision and manage multiple Docker hosts remotely from your personal computer. Such servers are commonly referred to as Dockerized hosts and are used to run Docker containers. While Docker Machine can be installed on a local or a remote system, the most common approach

How To Provision and Manage Remote Docker Hosts with Docker Machine on Ubuntu 18.04 Read More »

How to Speed Up WordPress Asset Delivery Using DigitalOcean Spaces CDN

Introduction Implementing a CDN, or Content Delivery Network, to deliver your WordPress site’s static assets can greatly decrease your servers’ bandwidth usage as well as speed up page load times for geographically dispersed users. WordPress static assets include images, CSS stylesheets, and JavaScript files. Leveraging a system of edge servers distributed worldwide, a CDN caches

How to Speed Up WordPress Asset Delivery Using DigitalOcean Spaces CDN Read More »

A GraphQL SDL Reference

GraphQL schemas for a service are now most often specified using what’s known as the GraphQL SDL (schema definition language), also sometimes referred to as just GraphQL schema language. It’s a language with a very simple syntax that allows to define a schema very succinctly. Once you have a gasp at the different syntax elements

A GraphQL SDL Reference Read More »

How To Manage an SQL Database

SQL Cheat Sheet Introduction SQL databases come installed with all the commands you need to add, modify, delete, and query your data. This cheat sheet-style guide provides a quick reference to some of the most commonly-used SQL commands. How to Use This Guide: This guide is in cheat sheet format with self-contained command-line snippets Jump

How To Manage an SQL Database Read More »

Getting Started with Shards Vue

Shards Vue is a beautiful and modern Vue.js UI toolkit packed with dozens of custom pre-built components that you can use to kick-start your next app. The library was built from scratch with the goals of having a very small footprint and providing powerful components that are easy to use. The library is based on

Getting Started with Shards Vue Read More »

Up and Running With Reakit

In this article I’ll bring you up to speed on Reakit, a toolkit for building React UIs. Together we’ll build a customer information form using Reakit components. If you’re looking to understand how to start creating components with it in a short amount of time, read on! What We’ll Be Building Reakit offers a library

Up and Running With Reakit Read More »

How To Install and Secure OpenFaaS Using Docker Swarm on Ubuntu 16.04

The author selected the Diversity in Tech Fund to receive a donation as part of the Write for DOnations program. Introduction Serverless architecture hides server instances from the developer and usually exposes an API that allows developers to run their applications in the cloud. This approach helps developers deploy applications quickly, as they can leave

How To Install and Secure OpenFaaS Using Docker Swarm on Ubuntu 16.04 Read More »

White Paper: Running Cloud Native Applications on DigitalOcean Kubernetes

Download the Kubernetes White Paper Running Cloud Native Applications on DigitalOcean Kubernetes (PDF) Abstract The Running Cloud Native Applications on DigitalOcean Kubernetes White Paper brings readers through a variety of cloud native topics, introducing them to how they may leverage Kubernetes in order to manage and scale their applications. This white paper provides further insight

White Paper: Running Cloud Native Applications on DigitalOcean Kubernetes Read More »

How To Install R on Debian 9

Introduction R is an open-source programming language that specializes in statistical computing and graphics. Supported by the R Foundation for Statistical Computing, it is widely used for developing statistical software and performing data analysis. An increasingly popular and extensible language with an active community, R offers many user-generated packages for specific areas of study, which

How To Install R on Debian 9 Read More »

How To Install Webmin on Debian 9

Introduction Webmin is a modern web control panel for any Linux machine that allows you to administer your server through a simple interface. With Webmin, you can change settings for common packages on the fly. In this tutorial, you’ll install and configure Webmin on your server and secure access to the interface with a valid

How To Install Webmin on Debian 9 Read More »

How To Install Git on Debian 9

Introduction Software version control systems enable you to keep track of your software at the source level. With versioning tools, you can track changes, revert to previous stages, and branch to create alternate versions of files and directories. Git is one of the most popular version control systems currently available. Many projects’ files are maintained

How To Install Git on Debian 9 Read More »

How To Create a Self-Signed SSL Certificate for Nginx on Debian 9

A previous version of this tutorial was written by Justin Ellingwood Introduction TLS, or transport layer security, and its predecessor SSL, which stands for secure sockets layer, are web protocols used to wrap normal traffic in a protected, encrypted wrapper. Using this technology, servers can send traffic safely between the server and clients without the

How To Create a Self-Signed SSL Certificate for Nginx on Debian 9 Read More »

How To Create RAID Arrays with mdadm on Debian 9

Introduction The mdadm utility can be used to create and manage storage arrays using Linux’s software RAID capabilities. Administrators have great flexibility in coordinating their individual storage devices and creating logical storage devices that have greater performance or redundancy characteristics. In this guide, we will go over a number of different RAID configurations that can

How To Create RAID Arrays with mdadm on Debian 9 Read More »

How to Install MongoDB on Debian 9

Introduction MongoDB is a free and open-source NoSQL document database used commonly in modern web applications. In this tutorial you will install MongoDB, manage its service, and optionally enable remote access. Prerequisites To follow this tutorial, you will need one Debian 9 server set up by following this initial server setup tutorial, including a sudo-enabled

How to Install MongoDB on Debian 9 Read More »

How To Move a PostgreSQL Data Directory to a New Location on Ubuntu 18.04

Introduction Databases grow over time, sometimes outgrowing the space on their original file system. When they’re located on the same partition as the rest of the operating system, this can also potentially lead to I/O contention. RAID, network block storage, and other devices can offer redundancy and improve scalability, along with other desirable features. Whether

How To Move a PostgreSQL Data Directory to a New Location on Ubuntu 18.04 Read More »

How to Install and Secure the Mosquitto MQTT Messaging Broker on Ubuntu 18.04

Introduction MQTT is a machine-to-machine messaging protocol, designed to provide lightweight publish/subscribe communication to “Internet of Things” devices. It is commonly used for geo-tracking fleets of vehicles, home automation, environmental sensor networks, and utility-scale data collection. Mosquitto is a popular MQTT server (or broker, in MQTT parlance) that has great community support and is easy

How to Install and Secure the Mosquitto MQTT Messaging Broker on Ubuntu 18.04 Read More »

How To Install Go on Ubuntu 18.04

Introduction Go is a modern programming language developed at Google. It is increasingly popular for many applications and at many companies, and offers a robust set of libraries. This tutorial will walk you through downloading and installing the latest version of Go (Go 1.10 at the time of this article’s publication), as well as building

How To Install Go on Ubuntu 18.04 Read More »

How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on Ubuntu 18.04

Introduction Let’s Encrypt is a service offering free SSL certificates through an automated API. The most popular Let’s Encrypt client is EFF’s Certbot. Certbot offers a variety of ways to validate your domain, fetch certificates, and automatically configure Apache and Nginx. In this tutorial, we’ll discuss Certbot’s standalone mode and how to use it to

How To Use Certbot Standalone Mode to Retrieve Let’s Encrypt SSL Certificates on Ubuntu 18.04 Read More »

Using Derived State in React

React v16.3 introduces some interesting new features, such as the getDerivedStateFromProps method. In this post we’ll explore how to use it. In React v16.3, the getDerivedStateFromProps static lifecycle method was introduced as a replacement for componentWillReceiveProps. It’s important to move your components to this new method, as componentWillReceiveProps will soon be deprecated in an upcoming

Using Derived State in React Read More »

Deploying React Applications with Webhooks and Slack on Ubuntu 16.04

The author selected the Tech Education Fund to receive a donation as part of the Write for DOnations program. Introduction When a developer is making continuous changes to an application, a deployment system with webhooks can streamline development, particularly for teams. Integrating Slack notifications for code changes into a team’s workflow can also be helpful

Deploying React Applications with Webhooks and Slack on Ubuntu 16.04 Read More »

How To Autoscale GitLab Continuous Deployment with GitLab Runner on DigitalOcean

Introduction GitLab is an open-source tool used by software teams to manage their complete development and delivery lifecycle. GitLab provides a broad set of functionality: issue tracking, git repositories, continuous integration, container registry, deployment, and monitoring. These features are all built from the ground up as a single application. You can host GitLab on your

How To Autoscale GitLab Continuous Deployment with GitLab Runner on DigitalOcean Read More »

Elegant UX in React with Material-UI

Material Design is Google’s design language for the web centered around cards, grid-based layouts, and responsive animations. With Material-UI, a compact, customizable, and beautiful collection of components and utilities for React, putting the Material Design spec to use in your React app is a breeze. This post will cover the setup, usage, and theming of

Elegant UX in React with Material-UI Read More »

How To Audit Docker Host Security with Docker Bench for Security on Ubuntu 16.04

Introduction Using Docker to containerize your applications and services can give you some security benefits out of the box, but a default Docker installation still has room for some security-related configuration improvements. The Center for Internet Security, a non-profit whose mission is to promote internet security best-practices, created a step-by-step checklist for securing Docker. Subsequently,

How To Audit Docker Host Security with Docker Bench for Security on Ubuntu 16.04 Read More »

Higher-Order Reducers in Redux

In Resetting Redux State we’ve seen a way to reuse reducer logic to reset the state by creating a root reducer. But that’s not the only way to reuse reducer logic, and higher-order reducers come into the scene to help us with reusability and reducing code duplication. Higher-order reducers, unlike the root reducer approach, allow

Higher-Order Reducers in Redux Read More »

How to Verify Downloaded Files

The author selected the Electronic Frontier Foundation to receive a $300 donation as part of the Write for DOnations program. Introduction You’ve probably downloaded some open-source software, such as a Linux distribution ISO, and next to the download link was a link to download a checksum of the file. Have you ever wondered what that

How to Verify Downloaded Files Read More »

How To Install Go on Debian 8

Introduction Go, also referred to as golang, is a modern, open-source programming language developed by Google. Increasingly popular for many applications, Go takes a minimalist approach to development, helping you build reliable and efficient software. This tutorial will guide you through downloading and installing Go, as well as compiling and executing a basic “Hello, World!”

How To Install Go on Debian 8 Read More »

Simple Authorization in React

Most real world apps need authentication and authorization. While authentication identifies some entity as a valid user, authorization defines the actions that the user is allowed to perform, based on his/her roles and rights. We don’t usually need any special module or library to handle authorization and in most cases, a few utility functions are

Simple Authorization in React Read More »

How To Back Up a MySQL Database to DigitalOcean Spaces Using LVM Snapshots

Introduction Regular database backups are a crucial step in guarding against unintended data loss events. Designing an effective backup and recovery strategy often involves trading off performance impact, implementation costs, and data storage costs with recovery speed, data integrity, and backup coverage. The optimal solution will depend on your recovery point and time objectives and

How To Back Up a MySQL Database to DigitalOcean Spaces Using LVM Snapshots Read More »

Getting Started with Software-Defined Networking and Creating a VPN with ZeroTier One

Introduction These days, more and more software projects are built by teams whose members work together from separate geographic locations. While this workflow has many clear advantages, there are cases where such teams might want to link their computers together across the internet and treat them as though they’re in the same room. For example,

Getting Started with Software-Defined Networking and Creating a VPN with ZeroTier One Read More »

How To Benchmark DigitalOcean Volumes

Introduction Benchmarking allows you to estimate infrastructure performance so that you can determine whether or not a particular setup can serve your workload needs. This is an important component of maintaining high server performance and scaling to meet growing computing needs. With benchmark testing, you can monitor server resources, optimize for performance, manage utilization, and

How To Benchmark DigitalOcean Volumes Read More »

How To Use Alertmanager And Blackbox Exporter To Monitor Your Web Server On Ubuntu 16.04

The author selected the Tech Education Fund to receive a $300 donation as part of the Write for DOnations program. Introduction When problems arise, sending alerts to the appropriate team significantly speeds up identifying the root cause of an issue, allowing teams to resolve incidents quickly. Prometheus is an open-source monitoring system that collects metrics

How To Use Alertmanager And Blackbox Exporter To Monitor Your Web Server On Ubuntu 16.04 Read More »

How To Set Up a Samba Share For A Small Organization on Ubuntu 16.04

The author selected the Tech Education Fund to receive a donation as part of the Write for DOnations program. Introduction Samba is an open-source implementation of the SMB/CIFS networking protocol used in Windows environments for shared services such as file and printer access and Active Directory. Samba can also be used to create cross-platform file

How To Set Up a Samba Share For A Small Organization on Ubuntu 16.04 Read More »

How to Use DigitalOcean Spaces Bucket as Tiered Storage in ClickHouse

Introduction ClickHouse is an open-source columnar database management system that excels in high-performance OLAP queries and real-time analytics. However, scaling up data storage for ClickHouse can be challenging, especially as the volume of data grows. One efficient solution is to use tiered storage, which allows you to offload infrequently accessed data to a more cost-effective

How to Use DigitalOcean Spaces Bucket as Tiered Storage in ClickHouse Read More »

Displaying Content Placeholders in Vue.js with vue-content-loader

You might not have noticed yet, but several major apps are migrating away from the indefinite loading circle indicator paradigm (say that five times fast). Why? Because, while it’s better than nothing, it still makes users feel impatient waiting for their content to load. So what do they use instead? Loading placeholders. They’re usually low-contrast

Displaying Content Placeholders in Vue.js with vue-content-loader Read More »

How To Use Duplicity with GPG to Back Up Data to DigitalOcean Spaces

Introduction Duplicity is a command-line utility written in Python that produces encrypted tar volumes for storage on a local or remote repository. It uses the GNU Privacy Guard (GPG) to encrypt and sign its archives and the rsync algorithm to create incremental, space-efficient backups. Backups can be transmitted to a variety of repositories, including local

How To Use Duplicity with GPG to Back Up Data to DigitalOcean Spaces Read More »

How To Sync Transformed Data from MongoDB to Elasticsearch with Transporter on Ubuntu 16.04

Introduction Transporter is an open-source tool for moving data across different data stores. Developers often write one-off scripts for tasks like moving data across databases, moving data from files to a database, or vice versa, but using a tool like Transporter has several advantages. In Transporter, you build pipelines, which define the flow of data

How To Sync Transformed Data from MongoDB to Elasticsearch with Transporter on Ubuntu 16.04 Read More »

How To Upgrade Prometheus 1.x to Prometheus 2.0 On Ubuntu 16.04

The author selected the Diversity in Tech fund to receive a donation as part of the Write for DOnations program. Introduction Prometheus is an open-source monitoring system that collects metrics from your services. Prometheus 2.0 brings many changes and improvements, such as a new time-series database, better resources usage, a new configuration format for alerts,

How To Upgrade Prometheus 1.x to Prometheus 2.0 On Ubuntu 16.04 Read More »

Cómo bloquear intentos de inicio de sesión SSH no deseados con PyFilter en Ubuntu 16.04

El autor seleccionó a Code.org para recibir una donación como parte del programa Write for DOnations . Introducción Secure Shell (SSH) es un protocolo de red criptográfico para operar servicios de red de forma segura. Se utiliza normalmente para el control remoto de un sistema informático o para transferir archivos. Cuando SSH se expone a

Cómo bloquear intentos de inicio de sesión SSH no deseados con PyFilter en Ubuntu 16.04 Read More »

Scroll to Top