VirtualBox allows you to encrypt the virtual disk files at the VM level. This means you can use VirtualBox to encrypt the disks even if the operating system you are installing does not support disk encryption or you simply prefer not to use something like LVM disk encryption. One benefit of doing this is that you can still use dynamically expanding disks. If you choose an encrypted LVM disk, you can end up with the maximum size of the virtual disk being used which is highly inefficient for disk space.
Exceptions are a way of handling execution flow when an error occurs. This will show some examples of how to raise and handle exceptions, how to create custom exception classes, and how to detect if no exceptions are raised.
Ruby is a better Perl and in my opinion is an essential language for system administrators. If you are still writing scripts in Bash, I hope this inspires you to start integrating Ruby in to your shell scripts. I will show you how you can ease in to it and make the transition very smoothly.
The idea with 'enhanced shell scripting' is to create hybrid Ruby/Bash scripts. The reason for this is to take advantage of both worlds. Ruby makes it seamless to pass data back and forth with shell commands.
There are many times when running shell commands is easier or required when there is an external command-line utilities you need to run.
On the other hand, Bash syntax is quite ugly and difficult to remember, and it has very limited features. Ruby offers two tons of object-oriented power, along with tons of libraries and better syntax.
We will look at how to write 'enhanced shell scripts' using Ruby and other tips on taking advantage of both worlds.
A heredoc can be a nice way of passing a large block of text around in a script. Here are a few tips on using heredocs with Ruby.
rake utility and
Rakefile are Ruby's version of
Personally, I find
rake much more pleasant to work with than
While it is written in Ruby, you can use it as task runner for a project
of any language. Let's look at some basic usage of
If you are trying to run your Node.js application and you get something like this:
Error: Cannot find module 'C:\Users\Me\my_app.js'
then you are most likely trying to run the wrong file. It is possible
you are missing a dependency that is needed from
but if it says it cannot
find the main file you are trying to run, then you are
trying to run a file that does not exist. It is a common mistake.
This tutorial will walk through the basics of Python 3 virtual environments. The official documentation is available at https://docs.python.org/3/library/venv.html. All of these commands are run from your command prompt/shell/terminal, not from within Python.
Recently I needed to take my front end development skills to the next level. Whenever I needed to build a web interface, it was simple enough to use Bootstrap and the jQuery that came packaged with it. This worked fine when the templates were being rendered server-side using templates like with Django, Flask, WordPress, etc.
I decided to take the time to learn Angular, React, and Vue.js enough to form an opinion and understand the benefits and drawbacks of each one. This is my comparison and conclusion. I chose Angular and I will explain why.
In search of the perfect desktop Linux distribution I have tried out quite a few and learned about the philosophies of each one. This is my comparison of some of the distributions I have tried over the years.
I will spoil it now and let you know that the winner in my book is Fedora!
When attempting to use SSH client in Fedora 29 within a VMWare Player virtual machine, I would receive a a broken pipe error immediately after a successful authentication request. This is the fix I found.
Bash brace expansion is an incredibly valuable feature once you commit it to memory and begin using it on a regular basis. It will save you immense amounts of typing. This also works in Zsh.
Coloring your terminal output in a command-line application can make a big difference in readability. This will show you how to format your text in a Ruby application.
We will use the
colorize gem, which works in Linux, Mac, and Windows too.
Colorize works by adding the ANSI escape characters to set colors.
If you have a script or application you want to run but don't have a desktop or dock launch icon for it, you can create a custom one yourself.
This will work in Gnome, KDE, and other desktops that follow the specifications at freedesktop.org.
For more options, you can read more about Desktop Entry Specifications.
Dialog boxes are a commonly used GUI element to provide feedback to the user and also to prompt the user for information or to take an action. Some examples of common dialogs are:
- A simple message: "Press OK to continue"
- Ask for "OK or cancel"
- Ask for "Yes, no or cancel"
We will look at several different methods for creating dialog boxes in Python including cross-platform options like tkinter and PyAutoGUI, as well as a couple Windows specific options.
This guide will give you two very easy ways to create desktop
notifications in Windows using Python. One will use
and the other will use
ssh application is essential to just about everyone.
Are you using it as efficiently as possible?
Check out these tips and config settings that will make your life easier,
including aliases, specifying identify files, forwarding ports, and
using jump hosts.
You can specify what programs you want to run on Windows boot. All you have to do is add the script, executable, or shortcut in to the startup folder. Alternatively you can use scheduled tasks to manage startup scripts. This will show you how to use both methods.
Debian Package tool
dpkg is used on Debian, Ubuntu, Kali, Linux Mint,
and other Debian based Linux distributions.
This tutorial covers the basics of creating custom
and managing them with
We will cover the process of creating your own
deb file to distribute
your package easily.
You can push your own Java packages to Maven Repository - Central and make it available to everyone. It's a tricky process to set up the first time, but once you get it ready, it is incredibly easy to push updates. This tutorial will walk you through the basics of registering and pushing projects to Maven central using Sonatype's OSSRH (OSS Repository Hosting)
Docker is useful for containerizing and managing processes. It is a great tool for developers and devops teams. Docker is good for creating reproducible environments. It is easy to customize images and document how an environment should be configured. We will look at how to:
- Install Docker
- Manage images, containers, and volumes
- Create custom images
- Pushing images to DockerHub and running custom registry
- and more!