My 30 day challenge is officially over today. I set out to do a blog post every day before 9am for thirty consecutive days and had 28 successes and 2 failures.

The first time I missed to post due to the all-nighter Garrett, Nate and I did before the workshop. Corey, one of the attendees noticed and was rewarded with 50 Euros as promised instantly. The second failure was yesterday. I was on the plane from NYC to Berlin and published a post right after I got back in. However, I could have pre-written the post at the airport where I had plenty of time. I just got totally sucked into a new side project (soon to be announced) and only noticed my mistake by the time the final boarding call was made ; ).

So why wouldn't I do it again? Mostly because not all blog posts are created equal. There is stuff that takes me days to write and that deserves far more thought and research than what can be accomplished in an hour or less. This is the type of posts I want to do more and that cannot be done in the way I've been blogging for the past 30 days. I also realized I don't feel like blogging every day and it shines through when I write something just for the sake of a challenge. Nevertheless, a little discipline in regular blogging sometimes can't hurt and this exercise is probably going to be very beneficial for my future writings.

Now it is time to take on new challenges. I already set one. However, I won't share it. This time the only person I am accountable to is going to be myself which will require an even higher amount of discipline. How will you know what the new goal is? Well if there isn't a major announcement here 30 days from now you'll know it was not achieved ; ).

I originally wanted to continue my post on the linguistics of programming today, but I was simply unwilling to publish what I have so far as it will require much more research to be of any significance.

So instead I'll share an easy way to play around with PHP5.3 if you're on a Mac. First of all install MacPorts (don't forget to install XCode before). Then run:

When we think about programming languages, we often times think of them in terms of features, limitations, performance, syntax and other aspects.

Being asked how many "languages" we speak we might joke around, saying half a dozen not including a bunch of dialects of basic.

But really? How often do you really think of your programming languages just as you would of human languages? Lately I've been given the concept a lot more thought. And it is quite surprising how many parallels you can find.

It probably all started with the idea of having a dictionary for computer languages. For human languages we are very much used to the concept of using a dictionary that translates between a language we already know and the new language we want to learn. Why doesn't there seem to be books or sites out there that pick up on the idea for computer languages?

I mean, somebody's previous language skills seem to be just such an important aspect when learning a new language. Depending on the vocabulary (commands), syntax (~alphabet), grammar, philosophy (history) and features (expressions / idioms / constructs) people just come in with all kinds of assumptions when learning a new language. How can this be ignored in all of the learning material out there?

A follow up to this post will come tomorrow, but meanwhile I'd like to hear a little from you guys and what concepts you think are important in the human / computer language comparison.