An open letter to my daughters.

In case I never get around to saying this, or in the event that something happens and I cause you to think otherwise I want you to always remember that you are the most beautiful women in the world and deserve to have every chance you can take.

As much as I think I am “making you”, as a parent I’m really only pointing you in a general direction for your life in the best direction as I see it. The direction may not always be the best, it might even lead to a dead-end in some cases and require you (us actually) to back-track and try something else. I realize that there are some times you’re doing something only because “dad said so”, but I’m hopeful that over time our directions will continue to become more and more parallel. I only want what is best for you even if “best” isn’t the direction we appear to be going.

I also want you to grow up to be someone who can and will make good decisions on your own. There will be a time when feel alone – it is those times as a parent I’m most afraid for the outcome. It might be a time when you’re truly alone and have to rely on your own instinct and reasoning to persevere, or it might be a time when you’re feeling pressured to do or say something that you feel in your gut isn’t right. I hope you’ll have the strength to act on what you feel is right at that time.

Your gut feeling is made up partially by what I have helped instill in you over time, but also part of what you have learned and have taken from what I and others have said and done. I can’t pour in a lifetime of knowledge into you in the few short years you’re living under my roof, but I can try to lead as good as an example as I can every day.

Was I perfect? I’m the first to admit no, not by a long shot. There are some events that we both could point to as a failing, and there are some that you saw as a failing that I did not. There are also points along the way where I feel that I failed you but you made it through and probably didn’t notice. The ones where we acknowledge a failure together are acceptable because we can both learn and hopefully move on. The ones where you saw a failure and I didn’t are harder for me to correct but at the same time I’m proud that you are able to adapt and grow from it. The ones that I’ve kept inside are probably some of the hardest – I know I have failed in some extent but somehow either you adapted or you assumed that I made that choice. If you adapted I’m proud of you accomplishment – it definitely wasn’t by me helping at that moment. If you suffered and thought it was because I made the choice to have you suffer, I apologize and I can never make it up to you. Those moments will live in my mind forever.

All of that is taking place while you’re still on your way to adulthood. After you become an adult, your directions and actions are your own. I’m hopeful that the direction I set you on is a good one, and I hope that all those life events (good and bad) help provide you with adequate background to continue making good decisions when you’re on your own.

Remember this: As long as you continue to make good decisions based on what you know and stay true to yourself, family, and friends, you’ll always have my love and respect.

I can’t tell what is going to happen tomorrow any more than I can ten years from now. If you choose a path then that isn’t a faint option today, as long as you make that choice by staying true to yourself I’ll respect and love you for it irregardless. There may be some decisions you make that I don’t understand, and you might hear me sigh or see me roll my eyes I still love you deeply.

Once you’ve are on your own making adult decisions and accepting the consequences for yourself, I will do my best to stay out of your personal business until I’m asked. I hope that you will feel you can come to me for any advice – “words of wisdom” is way too conceited – but I’ll understand when you make your own way even if it isn’t what I’d advise. I may not fully support every action you might take, but I will promise to do my best to understand your decisions and support you.

As you become an adult, I’ll do my best to let you shine in the spotlight for all the accomplishments you will have. I will brag about being your parent when you’re graduating or accepting awards, but everything it took to get up to that point was you and I won’t take credit for that. Your decisions – whether I agreed with them or not – were yours and got you to where you will be. I can only hope that the direction I set you on many years ago were the ones that helped you become the “you” you will be.

Net Neutrality

On the topic of “Net Neutrality”, this is one case where I believe that a true neutral Internet is something that the US should mandate. I won’t write a lot here – use your favorite search engine for “net neutrality” and look at some of the sites that are backing it (Google, Wikipedia, NetFlix, Amazon, etc).

Without it, our Internet service providers can slow or block access to sites on the Internet that either don’t pay them directly, or have a competing product. You might have noticed this in your cell phone advertisements – notice how many offer “free music streaming” if you use their service? Cell companies aren’t held under the current net neutrality rules and can do that; they can pick-and-choose the music that doesn’t use up your data allowance for the month and by extension are choosing what music services “win”. Now image that Google pays your ISP to make searching their site the only search engine that your home computer can access.
Or worse yet, the local WalMart pays the local ISPs to block access to They probably couldn’t pay your ISP block it, but I’m sure for the right sized check they could get the ISP to make take minutes to come up, but would be instant. Who would you buy from then?

I don’t like the degree of government oversight especially in rapidly evolving technical topics, but this is one that a basic law that says “treat all data as equal” has won me over.
If you’re interested in taking action, head over to “Battle for the Net” at and sign up to call your congress men and congress women to ask them to stand with us.

Increasing storage on a RHEL 6 virtual machine with LVM

Recently I had to increase the available space on a virtual machine running RedHat Linux 6.   The filesystem was configured with LVM, so the quick answer that came to mind was to add another virtual hard drive and expand.  While this would work, it was “messy” as future expansion in this fashion would get out of hand.

Thankfully the solution was easier:

  1. Confirm your starting state to verify these steps work
    1. Check the free LVM space assuming “/dev/sdb” is your disk in that volume group, and “MyVG” is the name of the volume group.
      1. vgdisplay MyVG | grep Free
  2. Power down your virtual machine.
    1. In my experimenting, I could did this while the OS was running but it wasn’t 100% consistent.
  3. Expand the HDD size within the virtual system host environment
    1. In my case I am using VMware vSphere and increased from 60GB to 300GB.
  4. Boot the virtual machine
    1. It should boot without any difference than before.
    2. Login as root
  5. Run the “pvresize” command to tell the LVM subsystem to look at the new size of the HDD
    1. Assuming the drive in question is “/dev/sdb”, run this command:
      1. pvresize /dev/sdc
  6. You can confirm your LVM has additional space by noting the “Free” section of the output of the “vgdisplay” for the volume group that /dev/sdb is associated with
    1. vgdisplay MyVG | grep Free



Free Ansible training videos from RedHat

My RedHat rep sent me a link to this Ansible on-line training.  It’s not the standard 60-90 minute live walkthrough, this is a set of pre-recorded training videos.

Title: “Ansible Essentials: Simplicity in Automation Technical Overview”


As I just received this information today I haven’t had time to look at them, but the chapter titles look like a good overview of the entire Ansible suite.

Bad user experience…

My VMware support engineer forwarded on the current VMware knowledge base weekly digest, and one of the new KB article titles caught my eye:

Upgrading VMware Tools using PowerCLI or vSphere API (2147641)

Hey!  That sounds like something to look over and possibly provide to my operations team to help them upgrade older VMs that were now running on newer VMware hosts!  Clicking on the URL for that KB article (KB 2147641) brought up the usual Details and Solution sections, but they were strangely lacking.

The “Details” section usually explains the subject of the KB article in detail.  This one just said:

VMware Tools can be upgraded using vSphere PowerCLI, vSphere API and other methods. For optimum performance, upgrade VMware Tools in not more than five virtual machines simultaneously.

And the “Solution” section was even less helpful:


Talking with my support engineer, he thinks that the article may have been posted to note that it is possible to upgrade the VMware tools using either of those methods, just the actual steps how to do this were not documented.

I know from a quick search there are plenty of examples from sites on how to do this:


Ironically, there are some links to pages addressing this:

I’ve seen odd VMware KB articles in the past – hopefully the addition of a “Tip of the Week” flag or at least a sentence in the Solution field denoting the article is not fully fleshed out solution would save a lot of confusion.

Bad administrator, no cookie…

Well, it had to happen.  I finally got my new site up and planned to restore the blog posts to the new site.  My backup files from various past sites were all in place – I had setup a backup script to dutifully collect the data monthly (I didn’t update the sites all that often), and also clean up after itself and only keep three months of backups.

The script ran, the backup files appeared and automatically cleaned themselves up after 90 days.  When I first ran it I verified that the files were complete – I didn’t restore them anywhere, but the blog text was there.  Success!  Add it to cron on my desktop and let it run.

And run.   And run.   And run.  Unattended.  For the past couple years.

I had been lax and wasn’t blogging much so I let my SquareSpace site go away a year ago.  Recently I decided to resume my, um, blogging, so I installed WordPress on my site and went looking through the backups.

The good news, my cron job continued to work dutifully backing up all the blog posts.  Except when I canceled my SquareSpace account, it continued to “backup” the site – except this time the files it saved were essentially “the site does not exist” messages.  (Insert sad face here…)  Thankfully I was able to restore some of the older text using and I’m still combing through other old sources.  But much of it is a loss.

So, what did I learn (or re-learn) from all this?

  1. A single copy of a backup is not a backup.  Use the “Three/Two/One” rule.
  2. Don’t cleanup archives when it’s not necessary.  The backup files were small enough (less than a megabyte after compressions), so I could have kept many years in couple gigabytes on my server.
  3. Keep track of services and the processes associated with it – I didn’t need to keep the backup script running after cancelling the service. This didn’t have a real expense associated with it, but how often have we looked at our budget and realized that we’ve continued to pay for something well after we stopped using it.

Subversion to Git

I have a Subversion project that I’m migrating to use Git, but I don’t want to loose the history if possible.  I found these steps and they mostly worked for me with one exception (below):

The only problem was during the export I got the error message:

Author: (no author) not defined in authors file

After a bit of searching I found this workaround:

Author: (no author) not defined in authors file

In short I had to add this line to my users.txt file:

(no author) = no_author <no_author@no_author>

Successful backups in three, two, one…

Let me start off by saying that I didn’t come up with this backup mnemonic, rather Peter Krogh first wrote this up (to my knowledge) in this blog post.

As I recently re-learned, backups even done right are hard to do well.  In my case there’s a chance that I still would have lost my data, but there’s no accounting for human error in every case.

The “Three, Two, One” backup strategy is pretty simple:

  • Three – A file isn’t backed up until there are at least three copies of it, the original and two other copies not on that machine.
  • Two – The backups must be on two different media types.  For example, a hard drive and a DVD drive, or a tape backup.
  • One – Finally, one of those copies should be stored off-site or at least off-line.  A cloud storage service such as Carbonite, Amazon Cloud Drive, Google Drive, or even storing it at a friends house.

In my case (backing up my website), one version would have been the site itself, a second would have been a copy stored on my home computer, and a third would have been stored on a DVD (probably not every month, but probably once every six months or so) or I would have copied it up to my Google Drive.

Sadly, I didn’t take those precautions and now I’m paying the price (thankfully a small one).

And I’ll add one more thing – be sure to VERIFY the backup you created periodically.  It does you no good if the restore process fails or isn’t documented for someone else to perform.