Gitlab + Runner with SSH and Docker

If you’re going to go with a cloud provider, I would highly recommend using Digital Ocean because it’s the best bang for your buck overall. With Digital Ocean, a droplet that meets the recommended resource requirements costs $20/mo. That price also includes bandwidth unlike Google Cloud Platform and Amazon’s Web Services.

Linux Logical Volume Manager (LVM)

The Logical Volume Manager uses a device mapper framework which creates an abstract layer of virtual devices to manage phyical devices with greater flexibility. Device mappers is not only for LVM, but is also used for software RAID, disk encryption, and features such as snapshots. Other features provided by a device mapper are:

mysqldump Too many open files

When runing the mysqldump command there's a possibility that you will receive the error message:

mysqldump: Couldn't execute 'show create table `table`': Out of resources when opening file './database/table.MYD' (Errcode: 24 "Too many open files") (23)

There are several possibilities as to why this error is occuring. Before changing the number of open files allowed, you can try using the --single-transaction command line option.

MariaDB Replication

Master Server

  • log-bin causes the server to keep a log of all changes to the databses, both data and structure, as well as how long each statement took to execute.
  • The server_id is a integer 1 to 4,294,967,295.

SSL Private Key, Signing Request, Certificate Generation and Apache Configuration


Versions prior to Apache v2.2.12 and OpenSSL v0.9.8j required a dedicated IP address for each certificate. With Server Name Indication (SNI) there is no need to request a new IP every time a certificate needs to be installed for a domain.

SNI can secure:

  • Multiple Apache sites with a single certificate
  • Multiple subdomains of a domains with multiple certificates
  • Multiple domains from a single IP address

With that said, you don't have to request a dedicated IP address for sites that use SSL certificates.

Starting with Docker

Docker can be best described as a lightweight virtual machine. However, it technically is a virtual environment. Unlike products such as VirtualBox, VMWare, and Parallels that require virtual hardware (BIOS, HDDs, NICs, etc), guest operating system, drivers, libraries, binaries, and a Hypervisor, Docker only requires programs and libraries to run an application.

Mac OS X 10.10 Juniper VPN

I use a Juniper VPN in order to connect to a remote network. Since upgrading to OS X Yosemite, I found that I could no longer connect to the VPN. Normally, I would launch the application, Network Connect; enter my credentials, and bam! With the new version of OS X, Network Connect would hang when trying to establish a connection to the remote network after enter verifying my credentials. 

Android Geofences (Update)


A few months ago, I had written about how to setup and monitor geofences. Since then, Google has made changes to their location APIs by removing some of the classes such as the LocationClient class. This change was announced in 2013, but Google's documentation had made no mention of the changes that were to come. At the time of writing, documentation and examples on how to setup and monitor geofences using the new method are scarce.

Android Notifications


Notifications are those little badges that appear at the top of your Android device's screen. Creating the notifications are pretty easy and straight forward and can be extended to provide actions opposed to a simple message notification. The application in this post is a simple application which has a single button that fires off a notification.