Cloud

  • 10 September 2025

Additional insight into collaborative editors

I think I had it all wrong when I accused OnlyOffice of sending data to the Russian goverment. This architectural design is called WOPI and was created for web applications that want to integrate with Microsoft Office. That means the architecture was really designed for the CIA to intercept a target's documents saved to Office 365.Read more 

  • 08 September 2025

Only Office for personal use

Vibe coding is supposedly going to replace actual programmers. I can’t wait for it to go away. Robots have a terrible way of doing things, and they are not very good at writing code. That, however, has not kept me from regularly dabbling with ChatGPT and code generation.

Programming is my hobby - not my livelihood. So when it comes to solvin…

Read more 
  • 18 July 2023

From nginx to traefik (and solving X-Forwarded-For)

I recently switched my home setup from nginx to traefik. I had to get used to the new configuration styles and weird doc style of traefik, but suffice to say, I am happy at the end results.

Traefik ships with SNI, allowing me to snoop the connection and prevent unauthorized access to my file server. (One m…

Read more 
  • 06 June 2018

Jenkins-x on home kubernetes cluster

Jenkins-x appears to be the next big thing in CI/CD workflows - especially if you develop applications on kubernetes. There were a few tweaks I needed to do to set it up:

  1. I had to manually create Persistent Volumes (no big deal, below are what I have for my NFS share)

                            
                        
                        Read more 
                    
                
            
            
                
            
        
            
                
                    
                
    
                
    • 03 February 2017

    Debugging PHP web applications

    In 2017, this topic seems a little dated and will probably not get me an opportunity to speak at a conference. While all of the elite programmers, cool kids, and CS grads are talking languages such as Go and Erlang - how to do tracing, performance testing, and the like - it seems very juvenile for me to write about PHP.

    PHP is a language mad…

    Read more 
    • 09 December 2016

    OpenStack certification

    On Dec 20th, I am scheduled to take my COA exam. From the exam requirements page, it appears to be a somewhat moderately difficult exam. The few points I need work on are heat templates and swift object administration. A few things I know about the exam are what are Read more 

    • 02 December 2016

    Docker is not a source to blame

    I have been reading a few articles that have been published recently regarding the use of docker in production. Of the articles I read, all seem to complain about the instability of docker, the docker ecosystem, and they lament persistent storage. While I have not run docker in production for a lengthy amount of time, I can determine these issues a…

    Read more 
    • 11 November 2016

    Website protection

    There are several factors that go into securing a web application. Most are second nature to seasoned system administrators, but it is still too common to talk to someone who does not know how to properly secure a web application. Here is the common checklist I go through when I determine if a website is secured.

    • Is it using a firewall… Read more 
      • 21 October 2016

      Deploying Puppet Open Source

      Update: (5/28/17) yes, there is the puppet/r10k which supercedes the zack/r10k. While you are free to deviate from the article in your own environment, the below steps still work as intended. I will have to update this article as well as explain why having r10k and dynamic environments is a good idea.

      In this guide we will g…

      Read more 
      • 07 October 2016

      Repercussions from a 1.1 Tbsp DDoS

      In case you missed it, the largest recorded Direct Denial of Service (DDoS) occurred. While under DDoS, a victim's server (or servers) is under high load and cannot complete all requests that are requested by it. Basically, a DDoS victim is someone the attacker wants silen…

      Read more 
      • 30 September 2016

      First puppet module published

      I completed my first public module for puppet and submitted it to the puppet forge. It seems too simple to compile into a build and submit it to the forge; however, I made it public for these reasons:

      1. I needed experience with puppet code testing. This helped me at the most basic level.
      2. I felt like someone else could benefit fr… Read more 
        • 02 September 2016

        Provisioning VMs with cloud init

        One of the easiest ways to deploy a virtual machine in oVirt is first to install the OS then turn it into a template. This will allow you to copy that template to deploy new instances. One mundane task after a new template is copied to a new instance is logging in, changing the IP, setting the hostname, setting up Puppet, running puppet, etc. Read more 

        • 12 August 2016
        • 05 August 2016

        Common problems with Web Developers configuring LAMP/LEMP

        I am a SysAdmin who likes to code. I would say I know a fair amount of web developing, but do not understand it like a web developer uunderstands it. I think the reverse is true as well - web developers know how to set up a LAMP/LAMP stack, but they do not understand it as well as SysAdmin might understand it.

        To be a successful SysAdmin, yo…

        Read more 
        • 21 July 2016

        Linux training on sale until 7/31/16

        The Linux Foundation is offering select courses at a discount until 7/31/16. Some offers are up to 55% off. You can also get an additional 10% off in check-out by using the code GSHOP. That brings the prices down to:

        $180 - For Read more 

        • 03 June 2016

        Why I can't use Ubuntu on Production Servers

        Do not get me wrong - I use Ubuntu and try to contribute to bugs (making and fixing). In fact, I am testing out 16.04 on my Chromebook and work computer right now (Fedora 23 is on my Home Desktop). However, I can't find myself placing an Ubuntu server in production for one simple reason:

        Security

        While Ubuntu has a good security team,…

        Read more 
        • 20 May 2016

        Cloud computing cost analysis

        Having a server in the cloud scared me at first. It wasn't the fact that being in a multi-tenant environment posed the possibility of others gaining access to my code/files - it was the cost that scared me. Not knowing if I was getting the best deal always plagued my mind. Especially since electricity, a/c, and hardware maintenance were never facto…

        Read more 
        • 19 February 2016

        Understanding the cloud

        It's 2016, the cloud computing has been around for nearly two decades, but there still seems to be a lack of knowledge in what cloud computing actually is and how to do it.

        In diagrams, a cloud is the typified icon of the equipment of which you do not control; however, to those in the public internet, your diagram is the cloud. To them, your…

        Read more 
        • 12 February 2016

        High performant chat application

        In a fictitious world where I started my own company and developed a LEMP-stack chat application, this is how I would do it in 2016:

        I would use WebSockets as the protocol in which data is being sent to and from the server. WebSockets has built-in support by nginx (since version 1.3). For caching, I would use the expires max; fu…

        Read more 
        • 29 January 2016

        VoIP Troubleshooting Checklist

        Voice over IP is very robust and reliable when set up properly. There are only four key areas to set up and check for issues. I have compiled the below list as things to check when an issue occurs. All of the steps are pretty basic and are known by every VoIP professional; however, it is handy to have to show a non-technical person or somebody who …

        Read more 
        • 15 January 2016

        VoIP implementation and tests

        In 2014, we decided to transition from a Mitel sx200 to a VoIP solution. We researched Cisco UM, Mitel, Lync, Shoretel, Avaya, Digium, a few hosted solutions, and a few Asterisk clones. I was one of three who sat through several presentations of the same features of every single phone system. Two weeks into this process, we narrowe…

        Read more 
        • 08 January 2016

        oVirt pitfalls

        After you use something for a bit, you notice the issues associated with it. While oVirt has solved my pain points of high availability, there are a few which stand out.

        Logging in

        To log in to oVirt for administration, you visit the landing page of the oVirt-engine website. This is perfect - it means I can administr…

        Read more 
        • 18 December 2015

        Converting Debian/Ubuntu to oVirt

        oVirt 3.6 will have a better way to import virtual machines. In the mean time, here is the best method for getting an already made ova into oVirt. The example I am using is the open source log analyzer - graylog.

        A prerequisite is the script located at Read more 

        • 11 December 2015

        Converting VMs for oVirt

        My existing Hyper-V infrastructure consisted of Windows, a few CentOS, and Debian/Ubuntu guests. The best method I found to importing into oVirt was using the virt-p2v disc. This required down time of the server (approx 3 hours per 100GB on gigabit backbone) and a dedicated Fedora o…

        Read more 
        • 04 December 2015

        Planning the Deployment of oVirt

        After I played with oVirt I needed to do several items:

        1. Migrate the oVirt engine to a new host
        2. Migrate the storage from a single NFS share to GlusterFS
        3. Move my VMs from Hyper-V to oVirt
        4. Test my setup

        Migrate the oVirt Engine to a new host

        This…

        Read more 
        • 27 November 2015

        Switching from Hyper-V to oVirt

        For quite some time I have heard that Hyper-V was a low player when it came to virtualization. It came with Windows and was the hypervisor of choice, but it had its limitations. In my environment, we had local storage and no clustering of hosts and consequently no high availability or fail over. This brought the first pain point - we need high avai…

        Read more 
        • 13 November 2015

        Paying for Open Source

        While Open Source software is free to download, use, and depending on the license, free to distribute, it is not free to creator. The Open Source creators have to pay for hosting, branding (domain, etc.), coding (in time), and distribution. While some are offloading the costs by hosting the project on Open Source aware distribution channels such as…

        Read more 
        • 16 August 2015

        The Arrow Law

        When I first started out with Linux, I was having trouble understanding the basic commands such as ln, andrewmv, scp, rsync, etc. What got me with those commands was the SOURCE and DEST options until I figured out the arrow law.

        A typical rsync command looks like this:

                                
                            
                            Read more 
                        
                    
                
                
                    
                
            
                
                    
                        
                    
        
                    
        • 02 August 2015

        Installing TeamViewer over SSH

        The recommended way to install TeamViewer is from a desktop environment using a package manager such as Synaptic, Yum, or apt-get. Sometimes you find yourself in a circumstance when ssh is the only way you have access to your server. This tutorial will help you get it installed on Ubuntu Server 14.04.2.

        As a reminder, TeamViewer is free for …

        Read more 
        • 18 July 2015

        Send Aliases over SSH connections

        Bash reads aliases from a file only; however, this file does not have to reside on the server you are connecting to. With OpenSSH, we have to ability to send environment variables that the server allows.

        On Debian/Ubuntu systems, the default accept environment variables are:
        
                                
                            
                            Read more 
                        
                    
                
                
                    
                
            
                
                    
                        
                    
        
                    
        • 11 June 2015

        Named Virtual Hosts on AWS EC2

        Named virtual hosts are not enabled by default on an Amazon AMI. To enable them, edit /etc/httpd/conf/httpd.conf and uncomment line 991:

        NameVirtualHost *:80
        

        You can then begin adding your named virtual hosts in the /etc/httpd/conf.d/ directory. Below is an example o…

        Read more