Delete a tag from GitHub

So I decided that I really didn’t need to tag releases of child themes that only I am using. Probably not best case usage but I got tired of pushing tags for minor CSS changes.

So I opened the terminal and cd to the appropriate local git directory that has a remote on GitHub.

Then it’s a simple command.

git push --delete origin tagname

Where tagname is the tag version number.

WordPress, WebDAV and htaccess

So I moved my WordPress install to my domain root and the WordPress specific htaccess instructions have borked my WebDAV. Fortunately a little googling and I’ve got a solution.

Since running a multisite install, my htaccess rewrites a lot. Turning off the RewriteEngine inside he WebDAV direcetory solves this issue.

<IfModule mod_rewrite.c>
RewriteEngine Off 

Thanks Tim

Bank Bail Outs – Happy Birthday TARP

Another lesson on economics from my brilliant sibling. This initially an email to a mutual friend and college classmate sent on October 3, 2012.


My good Doctor,

I was getting a little sick of the rhetoric on the bank bail outs and how this administration saved Wall Street so I decided to do a little research. First off, TARP’s enabling legislation was passed four years ago today, so happy Birthday TARP. In honor of TARP, here is a website that everyone in America should visit.

This is the website for the US Treasury and, in particular, a link to the section on the Troubled Asset Recovery Program – more commonly known as TARP. After poking around the website for a while and reading the monthly reports to Congress, a few things are obvious.

Continue reading

On the Fence

My brother wrote and sent the following out to some friends via email. I’m re-posting with his permission. For the record, he’s brilliant and not overly political. This was originally sent on Sept 6, 2012.


I never do this (hit reply to all) but, in this instance, I can’t resist.

First off, the facts about the federal budget. As you can see from the attached spreadsheet (provided courtesy of the US Office of Management and Budget), federal tax receipts have averaged 17.8% of GDP from 1950 – 2011. Yes it has fluctuated from a high of 20.6% to the recent lows of 15.1% (the effect of the stimulus checks the government sent out 2008 and again in 2009), but across ALL tax regimes, the feds seem to take about 18% of GDP as their “revenue.”

Continue reading

The Events Calendar Category Colors Plugin

It’s been a wild couple of days figuring this one out. Special thanks to Jonah West for all the help and encouragement. This plugin seeks to greatly simplify the ability to create background colors for your categories in the month view when using The Events Calendar plugin. It requires The Events Calendar v2.0.5 or greater.

TEC Category Colors uses the Tribe Setting API to integrate its settings into TEC’s settings page.

You can grab it from the WordPress Repository.

Add Alarm to Events Calendar PRO

Thanks to Joey Kudish and Jonah at Modern Tribe, Inc., I’ve converted my original hacked together code to add an alarm to a calendar event created using the Events Calendar PRO WordPress plugin into a plugin of my own. You can see/follow the original discussion on the Modern Tribe forum.

This plugin requires the Events Calendar PRO plugin. You will have to create an Additional Field from The Events Calendar Settings page.

You can then download, install and activate the The Events Calendar PRO Alarm plugin. If/when this functionality ever becomes part of Events Calendar PRO simply deactivate the plugin.

chroot’d SFTP on Mac OS X server

So here you are finding that you need to grant someone else SFTP access to your server. There are lots of reasons to do this, in my case it’s because I needed to grant access to someone’s web designer. We initially worked it out by him emailing me files and me SFTP’ing them up to the server in the correct location. Now he needs direct access to fix some things and I want to give him only what he needs without compromising security. Enter the chroot jail. After lots of googling and some encouragement from the Mac OS X Server email list, I’ve got it working. Here’s how it works.

First, you should create the new user in Workgroup Admin and either assign them access privileges for SSH via Server Admin or assign them to a group that has SSH access privileges. Further discussion is below.

From the Terminal, start off right.

sudo cp /etc/sshd\_config /etc/sshd_config.bkup
sudo chown root /
sudo chmod 755 /
sudo mkdir -p /chroot/user/scratchpad
sudo chown -R root /chroot
sudo chown user /chroot/user/scratchpad
sudo chmod -R 755 /chroot

Every additional new user added will then be something along the lines of the following.

sudo mkdir -p /chroot/user2/scratchpad
sudo chown root /chroot/user2
sudo chown user2 /chroot/user2/scratchpad
sudo chmod -R 755 /chroot/user2

Every folder in the path to the chroot jail must be owned by root. I don’t think it matters what group the folder is in. What I did above was to

  1. backup /etc/sshd_config
  2. change ownership of the root directory to root
  3. change permissions of the root directory to 755
  4. create a chroot folder
  5. create a user folder inside the chroot folder
  6. create a folder inside the user folder that user can modify
  7. set ownership and permissions

Now to edit /etc/sshd_config to the following.

#Subsystem  sftp    /usr/libexec/sftp-server
Subsystem   sftp    internal-sftp
Match User user
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp
  ChrootDirectory /chroot/user

This creates a chroot jail. When the user logs in will drop them into the folder /chroot/user, in that folder is a folder they can add things to /chroot/user/scratchpad.

If you want to create a Group in Workgroup Admin for ‘Chroot Users’ then add the new users that you created in Workgroup Admin to the Group; you won’t have to keep editing the /etc/sshd_config file. Instead of the above, add the following. Make sure you add the ‘Chroot Users’ group to the SSH access ACL in Server Admin.

#Subsystem  sftp    /usr/libexec/sftp-server
Subsystem   sftp    internal-sftp
Match Group chrootusers
  X11Forwarding no
  AllowTcpForwarding no
  ForceCommand internal-sftp
  ChrootDirectory /chroot/%u

If you have more than one chroot group just repeat the Match Group setup again.

To test whether the above is working, issue the following from the terminal.

$ sftp

Getting in is one thing. Now you have to mount the folder you want to use. Unfortunately you can’t use a symlink inside of a chroot jail. This is where Homebrew is your best friend. I don’t know why I’ve never seen fit to install this before. After installation just issue the following commands.

brew install bindfs

You might have to restart. Now with an empty folder created in /chroot/user you can mount --bind to a folder outside of the chroot jail. For example

sudo /usr/local/bin/bindfs -u user /Library/Server/Web/Sites/Server/Documents/mysite/yourfolder /chroot/user/scratchpad

So far this seems to work here.

Update for Mountain Lion Server

As I’ve updated my server from Snow Leopard to Mountain Lion, there’s one extra step.

From Workgroup Manager, you will need to create a home folder. Nothing really has to go into it, but it needs to be present. My settings are as follows.

Mac OS X Server/Share Point URL: afp://
Path to Home Folder username
Full Path /Network/Servers/

After setting this up the first time it seems to auto-populate for every other user. You’ll have to go to the Home tab, select it and Save.

RIP Steve


It appears that Steve Jobs has finally lost his long battle with pancreatic cancer. I am saddened by the loss as Steve has greatly enriched my life through his creativity and genius.

There are very few people in the world that have enriched the lives of so many. We shall miss you Steve, but we’ll never forget you.

My time out of the operating room