VirtualBox Disk Encryption Tutorial

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.

Enhanced Shell Scripting with Ruby

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.

How to solve "Error: Cannot find module '*.js'" with Node.js

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 npm install, 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.

Angular vs React vs Vue.js

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.

The better way to make web applications these days though is to have a separate REST API running the back-end, and then have a front-end that consists only of static HTML, CSS and JavaScript that interact with the API using AJAX calls.

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.

For reference:

Dialog Boxes with Python

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.

SSH Tips

The 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.

Publish Java Packages to Maven Central Repository

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 Basics

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!