I occasionally run into weird permission problems after a restore of files and folders on my machine, I think it has to do with OSX trying to protect me from myself.

Today I needed to fire up my coding environment on my Mac Mini, so I jumped into the folder for the code that I wanted to update using SourceTree, and did (what I thought was going to be) a quick pull, only to get a weird error message.

I figured it was probably something goofy, so I went to the command line, only to get another weird error:

Well, I’ve seen that before, and knew that message was probably because I’ve updated the OS a few times since I last coded. Basically it means the XCode command line tools are missing. Fixing that is easy: just run:

This fires up the Xcode installer, which will ask you if you want to install Xcode, or just the command line tools. In this case I don’t need Xcode, so I chose the latter.

That took a pretty long time (it was on “about a minute left” for at least 10 minutes), which was a bit worrisome, but not all that unusual.

Going back to the command line, I tried to do my “git pull” only to get another error:

OK, weird – why can’t it write that. Found a few things online that suggested running “git gc” might fix it, so I tried that, but that just gave me this error:

More curious Googling, and finding the suggestion to look at the extended file permissions, so I tried that:

Wait, what’s this “group:everyone deny delete” ? Well, no wonder I can’t run stuff that updates these folders. More Googling and I find the right switch for chmod to clear out the extended permissions:

Note that I had the two flags reversed the first time and the command told me it couldn’t find a file named “-R”. After running the above, the folder permissions looked more normal:

And my commands worked as expected.

Sometimes I get my branch in a state where I need to reset things to what is on the server. Most of the time a simple switch of branches is enough to get everything back in shape, but once in a while I need to actually reset to what is in the parent repo.

To reset your local working copy to exactly what is in the remote (typically called origin) do the following:

These should be done in the root of your project.

I needed to do some work on an old Maven project I have that I’ve worked on for years, and when I fired up my handy Netbeans IDE and ran the obligatory “priming build”, I was surprised to get an error on one of the basic Maven plugins. Continue reading

For testing, sometimes I need to validate web behaviors like redirects on SSL, and one of the reasons I love the Mac is that it gives me a ready to roll Apache server. I actually run a local copy of my web site on my Mac, and have it set up as a virtual host so that I can just browse directly to it. Continue reading

Two years ago, I moved to Salt Lake City for work. After looking around a bit for a rental property close to my new work, it became clear that I would be better off trying to buy a new home than renting if I could afford to do so. At the time the interest rates and property values in Salt Lake City were very low, so monthly mortgage payments were often cheaper than rental prices.Screen Shot 2015-04-25 at 9.22.15 AM

Sitting at the Salt Lake Roasting Company after we first moved here, we found a really nice real estate agent (Jaral Ferwerda).  I worked with him diligently to find a home while my lovely wife was buttoning up our home in California.

After a while, I started to find it very difficult to keep track of all the homes I was seeing. They started to blur together, and I wasn’t really able to figure out which one I liked best.

Continue reading

I created a WordPress site for a client who needed to support both English and Español versions of their content, which involved using a plugin called MultilingualPress that creates relationships between sites for each language.

I developed the site locally on my server, and then after they created some content, migrated it to their hosting service.

Continue reading

I get a chuckle over this every time it happens. Something in one of the many synch tools I use does some sort of conversion of birth dates, and I end up with alerts on my Mac that tell me somebody is having a really great birthday:

Screen Shot 2015-01-25 at 10.46.55 AM

I also see the opposite where I’ll get a reminder that today is somebody’s second or third birthday.

In the case of the ones where they show up younger, it’s usually because wherever I got their birthdate from originally, they didn’t put in the year. So that usually ends up being the year that the contact was entered into my address book.

But in the case of the incredibly old dates, my address book typically has an 1800’s date, so my guess is it’s some system breaking on a date overrun. I’ve also noticed that sometimes these contacts have two birth dates in my address book (again, some symptom of a synch problem), so for instance Reinald has both a birthday in the 1800’s and one a littler more reasonable than that.

Screen Shot 2015-01-25 at 11.24.02 AM

Sometimes I find myself working backwards up a tree of errors to fix a problem. Today was a case in point.

Since I’ve been doing a bit of WordPress grooming, I have the development build checked out locally. Previously I had run phpunit against the unit tests included in the code, but for some reason when I tried to run things under NetBeans, it would error out (Bug 247704).

Continue reading

A few months back, I noticed that most of the small businesses around my home were starting to switch over to Square to take payments. In some cases because the old modem based credit card reader had broken. For many it was a way to save a few bucks on transaction charges from their bank, and to have a more flexible payment method.

Now I love this product. Because it’s a web based service, it is typically hooked up with an iPad as a cash register. Over time, Square learns about your credit card, and even emails you a receipt.

And early on, it occurred to me that there was an unexpected consequence to this easy way of paying (at least in the service arena). Once you’ve ordered, the cashier will typically flip the iPad toward you to approve the purchase, and on that screen, you’ll be prompted with some choices as to how much you’d like to tip.

If it’s a cup of coffee, it will suggest 1, or 2 bucks, with an additional selection if you want to manually enter an amount, and another for no tip. For larger purchase it gives you varying percentages (and you can still enter a specific amount or choose not to tip).

But what occurred to me after seeing this, was that they’d made it SO easy to tip, that I figured they’d be seeing more tips. And from my discussions with a couple of the owners of a couple of places, at least anecdotally, that is the case.

Before when you swiped your card, you had to think about what you wanted to tip, write it in, and hope that it got to the people you were trying to tip. With this system, you tap once on a screen to approve the purchase and the tip.

I love technology like this that incrementally improves life. Square makes the cash register better, and as a side benefit makes your barista or wait staff much happier.

I don’t usually write about services that I use, but one that I really have been excited about is Square Cash.

Square Cash is an application by Square that uses email to do secure cash transfers. I have been using it for a while now, mostly to send money to friends when I need to pay them back for buying lunch (or when they need to pay me back). It is extremely simple to use, and is free.

It is extremely simple to use, all you need is a bank debit card, and you can start texting your friends money (or asking for money from them.

And right now, if you follow this link https://square.com/cash/D28b8Q, both you and I will get a buck deposited in the bank.