From time to time, I see people lamenting how many sites are “stuck” on old versions of PHP. Other times, I see people dealing with poor (shared) hosting environments, manual deploys with FTP, no local testing environment, and so on. Instead of sitting back and shaking my head, I’ve decided to do something about it.

We’ve all heard the saying “practice makes perfect,” but how you practice and what you practice are critical to making it an effective practice session. Consider some tips from a recent “Learning how to Learn” newsletter.

Software developers are, by necessity, lifelong learners. We are constantly facing new challenges, new technologies, new methods of solving problems. But how can we make our learning more efficient? This is a question that I’ve been pondering for at least four years.

In yesterday’s post on Octopress, I briefly mentioned the Pygments lexer documentation. One of the things I found incredibly useful was understanding all the available lexers and which language code would invoke them.

For example, let’s say you want to have a code block that highlights both PHP and HTML. How would you do this?

I recently moved my blog from WordPress to Octopress. The experience was painless and I wish I would have done it much earlier. One thing that puzzled me was how Octopress handled PHP syntax highlighting. It seemed that it would only work if every code block started with the opening <?php tag. I found this quite annoying, especially when I only want to show one line of code.

I have the habit of picking up a new programming language or two each year, not necessarily to master them or even to write production code with them, but just to be exposed to new approaches to familiar problems. For the last few months, twofriends of mine have been urging me to try out Go, a relatively new language from Google. Since I had a 17-day vacation planned in Florida, I decided to give Go a try while I had abundant free time.

Here is the five-second marketing pitch from Google regarding Go:

Go is an open source programming environment that makes it easy to build simple, reliable, and efficient software.

Beyond that, one thing that kept coming up when I heard people talk about Go was how it handled concurrency. My focus lately has been on writing scalable web services, so concurrency is something that gets my attention.

This week, I finally blocked some time to seriously investigate Vagrant and Puppet. The documentation for both tools is decent.

Taking the knowledge I gained from reading through the “Quick Start” documents, my next logical step was to spin up my own custom development environment for local usage. I quickly ran into some issues and wanted to enable the “debug” mode of Puppet. Since I’m not calling Puppet directly, it’s not as easy as tacking on a --debug option to the puppet command line. Instead, I need to tell Vagrant to run Puppet in debug mode, using the Vagrantfile.

I was frustrated watching the news tonight, seeing reports of long lines of people waiting to buy lottery tickets for tonight’s $500,000,000+ jackpot. There are several angles of absurdity to consider here. For example, why all the excitement over $500 million? Wouldn’t any of these players be equally thrilled by $10 million or even $5 million? Another example: Several of the people interviewed, who had just bought hundreds of dollars of tickets, were unemployed, facing foreclosure, struggling to pay medical bills, and so forth. But putting all that aside, let’s just look at the math.