Book Review: Master Your Mac

I just got “Master Your Mac: Simple Ways to Tweak, Customize, and Secure OS X” yesterday and am amazed with the amount of material covered in it.

It’s almost 400 pages of great material that is useful for everyone from newbies to veterans. It contains simple shortcuts, using the new features of Mountain Lion, using the hardware, configuring the software, and even shows useful third party applications (many of which are free).

My favorite section so far is simply a Bluetooth Proximity Monitor. This chapter tells you how to setup your mac so that if you walk away from it with a connected bluetooth device, it can automatically run whatever tasks you want. For example, pause iTunes, set your away status in your chat app, and even lock the screen. And then it can do the opposite when you get back with the Bluetooth device.

With 38 chapters of information, there will be something for everyone. I highly recommend this book if you have a Mac.


VimDiff: How Have I Not Used This Before?

Ok, I have been using Vim for about 15 years now, and even did a whole presentation on vim at my SD PHP Meetup, and had a reference to vimdiff in one of my slides. But honestly I have never used it.

WOW, what a great tool. Here are a couple of links that I found useful.

The video shows you how to use vimdiff as your git diffing tool.

One thing to add. If you follow the steps for using vimdiff as your git diff external tool, make sure to add this to your .gitconfig
diff =

Otherwise you will get errors.

Also, when editting more than 2 files at once, those shortcuts won’t work.
Instead of :dp, use :diffput b#
Instead of :do, use :diffget b#

b# is just a number of the window pane starting at 1, counting left to right.
Shorthand :diffpu or :diffg


Do Not Hire Or Be A Sole Developer

I was a sole developer for for eight years. While there, I was very happy to be the only tech person. I was able to do things my way. There was even an employee that encouraged the owner to outsource the programming, and to get rid of me. Needless to say, I was very unhappy when I heard this.

Looking back… being a sole developer is bad for both the company and the developer themself.

    For Developers:

Developers should strive to be part of a team. It is so hard to grow by yourself. If you have to be willing to put yourself out there and work very hard to learn. If you have co-workers, you will learn from each other. Someone will have your back if you make a mistake. Learning best practices is easier with more people.

    For Companies:

If a company can not afford to hire at least 3 people, they are doing themselves a disservice by hiring any. What happens when that person leaves? Who’s double checking that person? Did you really hire the “Best” you could?

Outsourcing to a group of developers is not necessarily as expensive as it sounds. Sure, per hour you may pay more, but you are basically buying the experience of a group of people. If someone leaves that group, there are others that can pick up where they left off easily. You should not be left hanging in a transition. You are not paying an employee when they are not working to 100% productivity or for them to spend time learning.


In the end, a sole developer really isn’t good for either party.


The Pragmatic Programmers: Practical VIM Review

I gave a presentation at SD PHP on Vim, and when I got home from giving the presentation, I had this book sitting on my doorstep. A little late for my presentation, but that’s probably a good thing.

All I have to say is WOW. I am going to have to give another presentation from just the new things I’ve learned. This book is not for beginners by any means. And if you think you know Vim well, I would say pick this up and have your mind blown.

I have been using Vim daily for over 14 years. It’s how I write code, which is how I make a living. The book starts off with the dot (.) command. Which is very useful, but not the first thing you would learn in Vim. I have used that command extensively for years. But nonetheless, with that kind of start, I knew that starting there meant the book would be advanced.

I am currently at page 33, and have said OMG many times with the cool things Vim can do, that I had no clue about. Based on this alone, go get this book. 5 out 5 stars/elephants/candy canes, whatever you want to use.

Practical Vim: Edit Text at the Speed of Thought


Solved: Facebook sharer.php Not Working for Some Reason

So, we have a ton of share links all over our various domains at work. And much of our domain structure is based on users have subdomains (example:

All of a sudden, the sharer.php seemed to stop working. Some browsers stayed white, Chrome showed a grey error message with a 500: internal server error.

It took me a long time to track down the problem. I tried so many different things, but in the end, it was the CASE of the subdomain. 🙁 Changing it to solved the issue. So strange, undocumented, and frustrating.

I hope this helps someone down the road.


Running a PHP User Group (2 Months In)

Running a user group was not in my thoughts prior to 2011. I joined Orlando PHP Dec 2010, but there was an hour commute. Then Daytona PHP started back up, and I was thrilled. Except they had 1 meeting and fell apart. 🙁

I planned on starting Daytona PHP on my own, but due to waiting for the OK from my then employer to use their conference room and then deciding to move to California, I put that idea to rest.

I started looking for a PHP Group in San Diego and was surprised to see that one did not exist. It became my goal to start it up (well start it up again, there used to be one). I had everything in place before I even moved.

Running a user group has to be one of the most satisfying experiences I have had in a long time. The people are great, and I have been very lucky to find members that want to be part of my team and co-organize. I was lucky to find a host that would provide space and pizza for the group.

We have had 3 meetups so far, and there have been a few regulars, which tells me something is going right. 🙂


Bluetooth Headset Purchase

After spending some time doing a lot of research, I settled on ordering the Motorola S10-HD.  I read some great reviews, some not so great as well.  We’ll see and I will post once I have them in hand.



Git Flow: Change a Release Branch to a Feature Branch

I just had an interesting experience where I accidentally started a release instead of a feature.  I didn’t realize it until I wanted to “finish” it.  That’s when I saw the release/…. branch name.

I figured, maybe if I just change the branch name, I would be fine.  And it looks like I was correct.

branch -m release/FEATURE123 feature/FEATURE123

and then, git flow feature finish FEATURE123

All was right with the world after that.

Programmer's Mindset

Using OpenGPG to Encrypt/Sign Email

I used this over a decade ago, when I worked for doing consulting in a doctor’s office.  We tried to get them to understand encrypting their emails.

After I left TradeWeb, I let go of using GPG (GNU Privacy Guard) out of laziness and the lack of adoption.  While attending #tek12 this year, my interest was again piqued by a presentation on security.

GPG or PGP (Pretty Good Privacy) are easy tools that help you sign/encrypt email.  If each one of us could convert a few people to using the tools, eventually it would spread to everyone.

Signing Emails

Signing emails is a way to let people confirm you are the author of a message.  It does not encrypt the email at all.  Since most people assume that when they receive an email addressed from you is from you, they don’t take the time to check the signature.  However, if they took the time to install the tools to check the signature, they would also have the tools that would allow me to encrypt my email to them.

Encrypting Email

For me to encrypt an email to you, I need you to already have a public key.  The email would automatically decrypt on your end, so it’s not like it takes any extra work.

Do us all a favor, help spread the word…

Programmer's Mindset

The Birth Of San Diego PHP Users Group

I am moving to San Diego, CA in one week. I have been a member of OrlandoPHP for about 18 months, so after I sold my house, I started looking for a user group to join. I searched and was shocked to find that there wasn’t an active PHP User’s Group. And as Cal Evans always says, if you look around for a user group leader and don’t find one, you’re it.

So I took the opportunity at #tek12 in Chicago to talk to a few user group leaders from around the country. I absorbed as much information as I could and recently opened San Diego PHP on It turns out there was a huge demand for this group in the area. We are already over 40 members with 15 confirmed for our first meetup.

The kicker is that I had two different members offer us conference room space to host the group, and also offered to buy pizza and drinks.

I am soooo looking forward to our first meetup and meeting the members. Looking for some fun and geekery, come check us out.