30 Minutes with Chris Hartjes

      Comments Off on 30 Minutes with Chris Hartjes

p. 8_of_Diamonds I first met “Chris Hartjes”:http://www.littlehart.net/atthekeyboard/ at php|works in Toronto where he was giving his “What Can PHP Learn From Ruby on Rails”:http://www.littlehart.net/atthekeyboard/2007/02/14/back-from-vancouver-php-conference-2007/ talk. As I described him in one of my blogs from php|works, he looks like a biker with a laptop. He’s large but he’s always got a smile on his face and is always available to help if you’ve got PHP questions. Chris was kind enough to sit down with me and spend some time talking about PHP and his work at VerticalScope . Here’s how our conversation went.

p. **So Chris, how did you get into programming?**
I’ve been programming for a long time. I was one of those kids lucky enough to have a computer. I started off with a VIC 20, so we are talking 25, almost 30 years ago; that was my first exposure. I learned BASIC, my parents bought me a subscription to COMPUTE! Magazine, and I spent a lot of time typing in the programs from the magazine and then trying to figure out how to use them.

p. I’m in my mid now 30s and I’ve been around computers most of my life. All throughout high school, I was fooling around with Apples, writing simple applications. I’m a huge baseball fan I play a lot of simulation baseball games both tabletop and computers, so I started writing applications that would help me keep track of all of that.

p. !Chris Hartjes**I’ll have to admit, the first computer I ever owned was also a VIC20. However I quickly “upgraded” to a C=64.**
Yea, we moved on quickly too but we moved to an Apple. It was on the Apple that I really got into BASIC. Until I discovered the web, all I had really known was BASIC. At college, we got a smattering of everything. We got Visual Basic, some database programming with Oracle, FoxPro, and some Java. When I was there, we didn’t do any web based programming but if I went back there today, I’m positive they would have something.

p. **You said you do “infrastructure” programming in PHP. Let’s talk about that for a while. Can you tell us more about what you do?**
To back track a little bit, before I went to work for VerticalScope, I was working for a company. I was on their core team that built a huge adult dating site. It was there that I really cut my teeth on large, distributed database applications. When I left there, the application had grown into a beast with fifteen servers and five or six dedicated replication slaves talking to a large Sun server that was the master database server. We had people who could create the front-end, create the forms, etc.

p. When you look at it, a dating site is really nothing more than a huge search engine. Not being a graphic designer, it was the search part and the tools necessary to keep everything together that really appealed to me. So I built a lot of scripts that ran as cron jobs, talked to other servers and gathered data, summarized data, munged data, etc. I learned a lot about how powerful PHP really can be. Not to sound arrogant but a lot of people don’t know how much work you can do “server side” with PHP. There are all sorts of things you can do with PHP that people usually associate with Perl and shell scripting.

p. So the main reason I was hired at VerticalScope was to figure out how to build an application that can get the snot kicked out of it online and still keep on running.

p. **I know you work a lot with vBulletin at VerticalScope. Can you talk to us about the challenges you face when working with it?**
Yes, we use vBulletin a lot at VerticalScope . I’ll be honest with you, it’s not my favorite PHP application. I think there are a lot of problems with it that all stem from how it’s architected, so it presents some unique challenges. However, the fact that it’s PHP and we can look at the source means that we can solve these problems on our own. We of-course can’t distribute our changes without permission because it’s a commercial package but we can look at the source and identify the problem.

p. I’ve spent a lot of time writing “glue code”. For example, I wrote a stats reporting system that does some cool ajax stuff with sortable grids of data that resort without reloading. In order to make a lot of that happen, I had to dig into the infrastructure of the system to figure out the tables and fields to pull the information from.

p. I spend a lot of time looking at systems and thinking, how do I get information from point A to point B. I spend a lot of time looking at databases and queries trying to figure out how to get this huge bundle of information from one place to another.

p. Our network is spread out over about 40 different sites. Our strategy is to buy established forum sites that are targeting specific markets. Then we turn around and sell advertising on them. So we’ve got several that get a ridiculous amount of traffic. What I’ve found that happens is that in vBulletin, there are certain features you have to turn off on busy sites. Since we deal mainly with sports, there are certain forms we have to turn off things like “search” and “signatures” around the time of a large event. This is part of my frustration with vBulletin, because it’s a commercial product, we can’t really dive in and make the changes necessary to make it perform as we need it to under these loads.

p. **What database server are you using behind all of these forums you manage?**
It’s all MySQL. That’s what vBulletin works with by default. There is support for PostGres but in my opinion, MySQL still rules the day in the open source theater.

p. **Do you find yourself tweaking the MySQL server at all or do you run the standard vBulletin configuration?**
In our current network setup, it’s a real reactive thing. For the most part, we leave it alone, however, when things get slow or they break, we take a look at it. We try to figure out what caused it to break and then go from there.

p. We will be deploying mcluster in the future spread out over several servers. At that point, we will be looking for some analysis tools in place so we can evaluate performance and locate bottlenecks.

p. Ours is a business built on traffic. If a forum goes down, we start getting emails telling us it’s down, asking when it’s coming back up etc. Also, if a forum goes down that hurts our credibility with our advertisers. So the move to mcluser is really in our best interest as a company. Its part of our overall initiative to take a look around and ask ourselves, “what can we do to make vBulletin better?”

p. DSCN1822 **What are your thoughts on PHP 6?**
Personally, PHP 6 is something that I am really looking forward to. I think most PHP users are really underestimating how important Unicode support really is. As far as the company goes, it’s not a big deal. Most of our forums are in English. That having been said, I don’t think we should take the narrow view. With PHP 6 we now have new opportunities open to us in the international market. The other side of the coin is we have to wait for vBulletin to catch up before we can begin to explore these opportunities.

p. **Ok, let’s talk a bit about technology in general. What is the technology out there that really excites you?**
Ajax. I look at ajax today and I can’t believe how simple it is to do some of this. It’s one of those things that if you’ve never worked with it, it looks like magic. However, once you get into it you begin to see how simple it really is with the new toolkits out there. I use YUI for a lot of my own stuff these days and it is so simple and yet so powerful that it’s amazing. I love it because it allows me to create applications that are so much more responsive to the users.

p. **Finally, what is the one blog that you read on a daily basis?**
Well, I know I’ll get flamed for this but I read David Heinimer Hansen’s blog, “loudthinking.com”:http://www.loudthinking.com/. he’s the man behind Ruby On Rails. I check that everyday because I find that the subjects he talks about go way beyond just Rails. He talks about a different way of programming and a different way of building things. I know I’m going to get tarred with the “Rails Fan-boy” brush but that’s ok. As I grow as a programmer I find that it’s no so much about the tools I’m using as it is about how I’m using them.

p. I’d like to thank Chris for his time and his patience in getting this interview transcribed and posted.