Installing drush for drupal 7

Drupal 7 is getting long-in-the-tooth. However, I use it for a couple of sites I manage, so simplifying management of these sites including upgrades/updates and security fixes remains a priority.

Since installing the older version of drush required for drupal 7 wasn’t currently documented, at least for my host (opalstack), this is how I install a global version for all sites installed for a given shell user.

As of this writing the most current version of drush that works with drupal 7 is 8.4.11.

From the command line, for the specific shell user for that app (each app should have its own shell user for security):

mkdir ~/drush
cd ~/drush
composer require drush/drush:8.4.11

To make it work without errors:

Add the following to .bashrc

export PATH=${PATH}:${HOME}/bin:${HOME}/.config/composer/vendor/bin:${HOME}/drush/vendor/bin:

And to .bash_profile

unset module

to make sure everything’s working, on the command line type:

$ drush version
Drush Version : 8.4.11

That’s it!


Building an outdoor pull-up bar

So I decided I needed more upper body strength. So I thought something fun I could do is build a pull-up bar, and track my ability (or inability) to do pull-ups. It was a much bigger project than I thought it would be. Here’s a quick write-up of my experience. Pictures and video are here too!

The final product


  • 2x 4″x4″ 12′ posts, pressure-treated, direct-ground burial lumber ~$130
  • 1x 56″ long, 1″ inner diameter threaded galvanized steel pipe ($24)
  • 2x 1″ threaded galvanized iron flanges ($4)
  • 6.5x 80 pound bags of post concrete ($40)


I viewed a ton of YouTube videos and online DIY instructions. I also put up a “test” post with no requirement for strength or endurance to learn how to pour concrete. This was all useful, but there were some huge caveats for me making this less applicable:

  1. The ground is wicked hard in my backyard. Like impenetrable beyond 29″ in depth.
  2. I’m kind of tall (6’5″), so setting the bar height correctly uses up all available height of a 12′ piece of lumber.
  3. COVID has made lumber hella expensive. Like, three times the budget in the DIY videos.
  4. Threaded pipe uses a tapered thread. I didn’t know that. Pipe is spec’ed by inner diameter, not outer diameter (rods, on the other hand, are outer diameter). I didn’t know that, either.


So my initial goal was to use 5″x5″s or 6″x6″s, but the aforementioned COVID lumber cost spike put those out of budget. So I resigned myself to 4″x4″ (actually 3.5″ on finished side) and hoped for the best.

I wanted to dig 3′ holes into the ground. That wasn’t going to happen, after some blood sweat and tears. Blasting is out of the question. I toyed with the idea of putting rebar into the granite (epoxied in) and then pouring concrete on the rebar, strengthening a weaker base. Unfortunately, the “granite” wasn’t actually solid granite, so there would be nothing to bond into. So my two holes are 28″ and 29″ deep respectively, which is where I hit this weird hard surface that’s not actually granite (some folks have said this is something called decomposed/decomposition granite, but I haven’t actually researched it).

My clever idea was to strengthen the design by using the flanges on the outside of the bar, so that the hole in the wood does the weight bearing. Folks smarter than me will already have worked out why this was painful: The flanges are threaded to go on the other way onto the tapered thread. I had to get the pipes rethreaded (I hate Home Depot) by a competent plumber with the reverse taper.

My test post taught me a lot about pouring concrete. I was determined to mix the concrete in the hole. The test post taught me the layering had to be slow and methodical, with plenty of mixing.

Drilling the holes turned out to be the second toughest part of the build. Finding the center of lumber is actually…. hard. 3.5″ is only the rough dimension of a 4″x4″, and the curvature on the edges makes finding the exact center very tough. Also, the portable drill press I borrowed off a neighbor had only 1.5″ of travel, requiring repeated step-ups, bracing, and clamping to drill all the way through. Needless to say, my holes were not great, one is not centered as it emerges from the lumber. Doing it again I would take the lumber to someone with a fixed drill press (2 hours to drill two holes!).


Per all the online resources, the bar should be ~1″-1.5″ diameter, 48″ long (the grabby portion). I have big hands, so probably on the higher end of this which works with my 1.3″ diameter pipes (outer)

Per the online resources, you could just put the bar at 8′ and call it good, if you’re average height. The measurement technique suggested is the your height to your middle finger on tip-toes plus two inches. This is 95″ for me = 8 3/4′.


I dug the holes in the ground with a thin shovel, (borrowed) post-hole digger, and some miscellaneous attempts with a (borrowed) hammer drill (mainly to loosen up soil).

I drilled the holes in the wood with a (borrowed) portable drill press, (borrowed) Forstner bits (nifty).


This took me way too long to build. But I learned a ton. So there’s that. I started June 10th, finished June 25th, with many trips to lumber stores, Home Depot and our awesome local hardware store: McGuckins.



It’s done. Let’s see how long it lasts! Hope this was useful to someone, and they can learn from my mistakes.


Frosty morning

Views: Morning, feel like you're here? by David Kabal

Using IPv6 with a router

This is my running log of trying to enable IPv6 at home using a router that is NOT built into my modem. Hopefully this will be successful in short order, and therefore useful to the internet at large.

I currently am set up with a Cisco RV042v3 DUAL WAN router connecting to a CenturyLink/Qwest Q1000 ActionTec VDSL2 modem/router in “transparent bridging” mode.

Disconnecting the RV042, and setting the Q1000 up as a primary router produce positive results on the following three test sites (,, when the router is configured as on this site. This is using a technique called 6rd which is different from 6to4 and 6in4.

So the question is how to configure the RV042 to do this when the modem is in transparent bridging mode. So far, no joy. 5+ hours on the phone with a pleasant Mr. Perez from Cisco support, along with joint conference calls with CenturyLink tech support have not yielded any fruit.

I have signed up for tunnels at SIXXS and Hurricane Electric. I have purchased a VDSL2 modem that does not appear to have routing functionality (not yet arrived as of 10/10/12).

I will continue to update this post as tickets are still open with Cisco and CenturyLink.


UPDATE (11/8/16): Never got the setup working for IPv6. Ending up rolling my own router using pfSense.


Connecting to Amazon EC2 from Terminal on a Mac

Figured I’d write this one out, because I couldn’t find this documented anywhere else. You do NOT need to open a connection FIRST to your local machine, and THEN to Amazon, as I’d been doing:

dkabal-macbookpro:~ dkabal$ ssh -i ~/[pem file location].pem ec2-user@[hostname]

You can open a connection directly to the remote server:

  1. Copy the .pem file to the ~/.ssh/ directory. Make sure permissions are right:
    chmod 700 ~/.ssh/[pem file name].pem
  2. Then add the following lines to your ~/.ssh/config:
    HOST [hostname, * works if you use the same .pem file for multiple hosts]
    IdentityFile "~/.ssh/[pem file name].pem"

Stolen unabashedly from here.


Going to the internet for TV

So a friend suggested I document my approach to going to a fully legal, download/streaming solution for all my TV and movie watching.

A little background: I have recently moved from a dual internet connection (CenturyLink 7 Mbit/s ADSL2+, Comcast 2 Mbit/s cable modem, bonded with a RV082 router) to a single 40 Mbit/s VDSL2 connection, because of some compelling pricing arguments (the cable price jumped from $15/month to $40/month). With this, I feel compelled to use this pipe for TV viewing, rather than pay separately for TV and internet. So the total cost of the solution or solutions must be less than the cost of internet and TV.

So here’s the shows my wife and I watch:

The Walking Dead, Dexter, Weeds, The Mentalist, Lie to Me, The Big Bang Theory, Eureka, Breaking Bad, True Blood, The Daily Show, House, The Big C, Community, Parks & Recreation, The Closer, Rizzoli & Isles, Nurse Jackie, Entourage, Curb Your Enthusiasm

Here’s the solutions I’m looking at:

Amazon, Netflix, Hulu Plus, Vudu, AppleTV, GoogleTV

From the start, it’s clear I have an uphill battle ahead of me. The problem is that the majority of these shows, especially the ones I really like are on HBO and SHOWTIME, networks who have notoriously stayed off the internet.

This post will fill out as I evaluate my options…

Personal Technology & Gadgets

Free of Bluehost at last

So this post has been a long time coming (almost 2 years), mainly due to my own lack of motivation and the sheer amount of work necessary to move a bunch of websites between hosts.

After trialling WebFaction for almost 1.5 years, and finding them to be reasonable and responsive, I have now moved this blog from BlueHost to WebFaction. Many folks have written about how bad BlueHost is, and so with this blog (finally) safely off of that host, I now feel free to add my $0.02.


Winning runs from Sunday’s Rally Cross

So Sunday Cassie and I went out to Fountain, CO for Event #6 of the Colorado Rally Cross season. I won, but barely. I videoed all 12 runs that Cassie and I did using my iPhone 4 with a homemade mount (lots of double-sided tape and taped ports to keep the dust out). I think the footage came out pretty good. Our car, a 2002 Jetta with recently replaced engine and transmission mounts (old ones kept breaking) sprung a coolant leak, so we were filling the coolant with water every run, and it redlined on temperature every run (260° F). By the end of the day, we managed all 12 runs thanks to everybody who let us maximally separate the runs, and Eric Genack‘s supplied water (used 2 gallons). The coolant was clear instead of red by the end of day (completely diluted).


Must-see movie


Neat optical illusion

Takes a while, but quite cool. Follow the instructions…..

Cool Optical Illusion – Watch more Funny Videos