SEO Analysis Primer

 Why SEO?

I have been interested in SEO for the last year or so.  One of the reasons for this blog was to start to dabble in SEO.  I thought it would be a potential good avenue to investigate for potential freelance work.  I have always had a knack for searching for content online, and I wanted to see how it worked from the search engine side.  I soon learned that this is quite a field and was changing constantly enough that I was not able to dedicate the cycles to it.  However I have found a few items and have started optimizing my site.  Right now I know the biggest SEO gain will be to put some more content on here, so in the spirit of keeping my goals for the year I though I would share a few resources I have been using.


  • Google Webmaster Tools
    • What better resource to look into than the sites that do the gathering and presenting.  You really need to spend some time reviewing the Starter Guide.  Also reading Google 101 should be a no brainer.  How else can you get to the top of the rankings if you don’t know the basics behind how a search engine works?
  • SEOmoz – Are You Setting Up WordPress For SEO Success
    • This is a great resource.  I generally like the SEOmoz site and this was one of the first pages I looked to start learning about SEO.  This guide is great and the comments also add a large amount of value.  I used this to go through some of the Yoast plugin features, but also trimmed down my list of categories and tags while also not duplicating the two.  The site also got me to change the plugin I was using for SEO to the very popular Yoast plugin.  This article also led me to my next link:
  • WordPress SEO Tutorial
    • I am still going through this a bit, it really shows an in depth process to go through your site and also how to use the plugin.  I really like the SEO analysis features of the plugin and will be using them a lot more going forward.
  • Other search engine SEO tips
    • Make sure not to discount Yahoo, Bing, etc. for tips. Each site has their own SEO bread and butter that is constantly changing to try to give them results that people want better than the other search engines.  That is what makes this field a full time job in order to do it well.

So hopefully you find some of the research that I did to get you off on the right foot if this is of interest to you.  I know that I will be spending more time trying to optimize while using the Google webmaster tools and site analyzer to see if my changes make a difference.



New Year, New Goals

Well, we are one month into 2013.  2012 was a year of a bunch of change.  I changed my residence as well as my job.  I ran a 10k race and picked up mountain biking again.  One of the things that didn’t change was the updating of my blog (or lack thereof).  I also did not follow through with any new years resolutions.  I rarely even set them.  Mostly because I know I would never follow through with them.  So this year I have come up with a few goals rather than resolutions to see if I will have any better luck.  I’m also posting here as a public showing of accomplishments or shame.  So in no particular order I have the following items and progress thus far:

  • Read 1 book/month

Kind of on track.  I did finish a book for January.  Unfortunately it was a book that I started about a year ago.  I do have a few books I got for Christmas that hopefully I can get back on track.  First up Fred Cusick: Voice of the Bruins

  • Learn another programing language (Ruby/python/php)

I have been doing some research to see where I want to go with this.  I have PHP experience, but not much with any frameworks and would like to brush up on my object oriented skills.  Python seems to be gaining popularity and is even used at my job some.  I belive Ruby will be the winner.  I have been getting more and more involved with using Puppet and automation and having some Ruby experience will help.  Also I can work on exploring Ruby on Rails a bit more to hopefully be able to knock out the next item

  • Build homebrew web app

    Beer with heady pour

    Looks like someone used the carapils

I’ve been threatening to do this for too long.  I would like to have an app to track my homebrew beer recipes and sessions.

  • Write 2 blog posts a month

As it is 2/5 you can see we are off to a great start.  However I have a few ideas of things I want to cover.  First post will be optimizing my blog for SEO and some of the things I did.

  • Lose 10% body weight

    2011 Rocky Mountain Vertex 29er

    My new bike to keep me on the trails this year

This is very obtainable and more.  Again I’m looking to peer pressure to keep me on track.  More biking and hockey, and maybe some hiking while achieving my last goal

  • take 3 overnight backpacking trips

I always enjoyed hiking and backpacking as a kid and in the Boy Scouts.  I finally have someone that also shares the interest so I need to strike while the fire is hot.  I’d like to take a few around the Shenandoah region, maybe even some of the AT

As you can see, all of these are very doable.  I didn’t set the bar too high to fail.  I feel like I have been busier than ever lately, but hopefully making time for some of these will make me a bit more well rounded.
Stay tuned for updates.

New and Improved NetApp VSC released

I’ve had this tab saved in my browser for quite some time now.  Unfortunately I have been too busy aligning VM disks to post, but while the job is running I have been constantly trying to find ways to speed up each iteration and decrease downtime.  My recent searches brought me over to Technodrone which announced (at least to me) the release of VSC 4.

Since I have been doing many mbralign jobs daily while trying to recruit additional help, I thought that this sounded fantastic, especially the following:

  • Perform online alignment of virtual machines by migrating them into optimized VMFS datastores

Unfortunately I found out that this only works on FC datastores and I am in a NFS environment.  This would have made production VM disk alignments much easier to do and increase efficiency, however for now I’ll have to take my dedupe gains of NAS as consolation.  I talked with a NetApp tech support person who actually pointed me to the new version of VSC and they didn’t have any date or confirmation for NAS datastores.  It sounds like the issue with NFS for online disk alignment has to do with performance and they are working to improve it.  If they can do that and make sure it works with Linux and doesn’t hose up grub we may be onto something.  Until then I’ll update one at a time, and hope for a solution before it is time to do production VM’s off hours.

Has anyone been able to use the new VSC and report on some online disk alignments?

Speed Up Disk Alignment mbralign Performance

The importance of disk alignment in virtualized environments is not a new topic at all.  There are countless articles out there explaining the how and why.  You can check out TR-3747Performance Best Practices for VMware vSphere® 4.0 for more information from the vendors.  In my case we were starting to see large latency spikes and throughout my research I kept coming across this link over at

I have been running a NetApp environment for a while now with ESXi 4.1 on it.  When we started the VM template that I was using was aligned, but at some point a new template was introduced and this step was not done.  As a result I have about 600 VM’s in my environment that are not aligned.  The bulk of the systems are application server VM’s, so our only real resource hit is on memory, but as we have grown we were seeing massive IO spikes during log compression and rotation, actually impacting our end user experience.  While I have gathered enough material to pretty much index everything on the internet regarding NetApp performance tuning, I will save that for another day.

So I started the daunting task of running the mbralign tool that can be retrieved from  We have most of our VM’s on ESXi servers, but there are still a few running ESX.  This allowed me to install the mbralign utility on one of those servers (ESXi I believe now does have a binary that can be used).  The issue is as I was running my disk alignment it was taking forever.  The disk alignment utility was running around 5Mb/second as I was running the utility.  This was turning out to be close to 1 hour per VM.  Multiply that  by 600 VM’s and the fact that nobody wants to take downtime, I figured I would be finished right around the time my 401k became eligible to withdraw from.

I was researching some other topic regarding VMWare performance and happened to come across a link from Google to a site about mbralign performance issues, but the page was throwing me a 403.  Apparently the Google crawlers were able to get into it at one point though as I had no problem pulling up the cached copy of the page.  The article discussed the performance of running mbralign from the hypervisor itself.  Since VMWare constrains the hypervisor resources to allow the vm’s to have maximum access to the hardware, if you run mbralign from a different server you will get much better performance.

Since all of our datastores are on NFS, it was simple for me to add permissions for a management server that I had to access the datastore.  From there I installed the mbralign utility, powered down my candidate VM and ran the utility.  Where I was previously getting 5Mb/sec I was now getting 50Mb/sec.  A 10x increase!  Over the course of the realignment I decreased the time from ~1 hour to 20 minutes.  This becomes much more manageable.  Even better was I was able to write up some documentation for our operations team to perform this procedure without needing to give them extra access to the ESX server.  It is also easier to rotate out customer nodes for less time during off peak hours, so hopefully we will finish this task much sooner.

I wish I still had the link that I found that day.  I will gladly link to it if I am ever reunited with it and the page becomes internet accessible.


PS3 Wireless Video Streaming Lag

A few months ago I decided to buy a home NAS product. Mostly this was to improve my backup habits, but also to consolidate all of my storage. I wanted a central place for my pictures, media, and documents rather than having them scattered between my laptop, desktop, and work laptop. I also wanted to make use of streaming videos from the NAS to my PS3.

I found that some videos I streamed worked just fine, but when I started streaming files of dvd quality I instantly saw buffering issues. I have had the PS3 setup using the wireless internet since I moved into my apartment and it has worked fine. I regularly stream from Netflix with no issue. I jumped online and starting searching. To none of my surprise I am not the first one to experience this issue. Apparently there was a PS3 firmware near 2.70 that causes the wireless to not function as well as it did previous to the release. I was able to stream the same video wirelessly to my laptop without issue. I also was able to view the streaming bandwidth stats (select on PS3 during playback) and as only 3-6 Mbps which any wireless G should be able to support.

There were 2 main solutions to this based on the forums.

  • Use a wired network connection.
  • Use an alternate USB based wireless network adapter.

Because of the location of my inbound internet connection a wired network connection would have been REALLY inconvenient. I also wanted to avoid buying more hardware. As I was looking through all of the forums, it seemed that the recurring theme was the PS3 wireless is bad. Based on the fact that wireless streaming worked OK in the past, and I was able to stream to my laptop fine, this seemed plausible.  Also the posts in forums regarding third party wireless adapters working better helped this theory. While I didn’t have any extra wireless drives around, I did happen to have a spare wireless router.

My current router is using DD-WRT. A quick look and I found that my old Netgear router could not be flashed with DD-WRT since it did not have the space onboard. However it looked as if I could still setup wireless bridging.  First stop: My primary router:

Open up the Wireless -> Basic Settings page:

ddwrt wireless bridge settings 1

Items to set:

  • Wireless mode – you will need to match this on the secondary.
  • Wireless Name – should already be set if you are using this as an access point.
  • Wireless Channel – You must set a channel for bridging to work, you cannot set to auto.  There are tools out there to help you find a relatively free channel if you are in a busy wifi area.
  • Network Configuration – “Bridged” – afterall this is why you are reading this.

Save these changes and then apply settings.  Next head over to

Open up the Wireless -> WDS page:

ddwrt wireless bridging settings 2

In the WDS settings, select LAN from the drop down and put in the MAC of your secondary wireless router interface.  Also make note of the wireless MAC of your DD-WRT instance.  Make sure it is the wireless interface and not the LAN interface or you may end up doing some extra troubleshooting like I did.  Save and apply, then we should be done with this router.

A few quick items setup on the secondary router:

Netgear Wireless Settings screenshot 1

Setup wireless settings

A few things that you need to make sure of:

  • Match SSID, channel, and mode to the values from DD-WRT.
  • WEP Encryption or none are the two options you can enable.  WPA(2) is not supported for bridging on the Netgear.  I am not sure if this is the case for bridging in general or just a limitation of this device.

Advanced -> Wireless repeating function

Netgear Wireless Bridging Setup 2

Netgear Wireless Bridging Setup 2

  • Check “Enable Wireless Repeating Function”
  • Enter an unused IP in the “Repeater IP Address” field.  This will become the new IP of the Netgear router.  After this you should be able to apply settings and reboot the router.

Now that we have done the bridging setup I was able to confirm that the Netgear could talk to the DD-WRT router, and I could also connect wireless devices to it.  The signal was decent enough.  So I put the Netgear near my PS3, connected the PS3 to the Netgear with some CAT-5, and changed the network settings on the PS3 to use the wired network.  I launched the same movie from the NAS and decided I would play it until it skipped.  Two hours later the movie ended without a blip.

All of this setup once again points to the wireless module on the PS3 being the weak point.  I was not able to stream over the wireless, but when I hard wire the PS3 which uses the same wireless that you were previously using as an uplink the issue goes away.  So we have eliminated the wireless as the issue.  One of the posts that I came across while researching had some testing which suggested that the firmware change reduced the size of the wireless buffer size which would make sense.  It would also explain why wireless streaming previously worked well for many.

Now that Sony has removed the OtherOS functionality maybe they can add back in some of that buffer space back.  If anyone knows how to get feature requests on the roadmap, feel free to let me know where to submit, or direct them to this site.  Maybe someday I’ll do some more in depth network measuring to support this more.  I’ll likely just find that old forum post and link to it instead though.

WordPress: Cannot create directory

OK, so first few minutes with the new blog, and I have been trying to get wordpress configured.  I did the install straightforward enough.  I have messed around with it a bit on my laptop locally setup, but finally got my Linux server up and online again so I figured I would make the move.

I had the base install done pretty quickly despite the Fedora RPM giving me headaches, so I just installed a fresh copy without the RPM.  As soon as that was done I decided it was time to get some of the plugins and themes installed.

With my local install, the plugin upgrade was very easy to do.  Simply browse from the list of available plugins, select the one you wanted, and then have it auto-install.  Easy enough.  First one’s first: “All in One SEO pack”, ready… click.  Wait for it, wait for it:

Downloading install package from…
Unpacking the package…
Could not create directory. /var/www/html/blog/wp-content/upgrade/all-in-one-seo-pack.tmp

Crap, well that isn’t good, it worked way easier on my laptop.  OK, off to the Googles.

I found countless messages about a bug in a version of PHP that I was not running, everyone that has no concern with security just enabling 777 to everything, people disabling php safe mode, but nothing seemed to match my issue.  OK Google, you have left me hanging, time to put on the troubleshooting cap.  I’m not using ftp, so there is no ftp user mismatch permissions, everything is owned by the web server user, the web server user has write access.  Let’s check the logs.  The error_log is blank, so let’s crank up the verbosity.
vi /etc/httpd/conf/httpd.conf, loglevel debug, service httpd restart.

Install plugin: Could not create directory… WTF!?!?  Revert that back.  Does php have a log?  Just for grins

tail /var/log/messages

Jun 12 18:06:14 server setroubleshoot: SELinux is preventing /usr/sbin/httpd from write access on the directory upgrade. For complete SELinux messages. run sealert -l .....

Stupid SELinux always getting in the way of my fun.

'echo 0 > /selinux/enforce'

Install plugin:

Downloading install package from…
Unpacking the package…
Installing the plugin…
Successfully installed the plugin All in One SEO Pack


A update to /etc/sysconfig/selinux to set the mode to DISABLED, and we are off and running.  As for SELinux and how it should be configured, that is for another day, but it is time for some dinner and the power just went out.  Looks like a takeout night.  At least I don’t need to set world writable files in Apache before I can get it properly secured.

Hello world! is back online after a long hiatus.  What is in store?  I have a few ideas, but this will mostly be a blog filled with all things technology, homebrewing, and maybe some occasional hockey.  I have been also considering breaking out the homebrew into it’s own project based on how much progress I make.  Either way stay tuned…