Interview Posted Online

April 4, 2011

Sayyid Alireza Hoseini of bugX.ir recently conducted an email interview with me, that has now been posted on bugX.ir. In case you don’t read Persian, here’s the English version of the interview:

1- Where are you living?

I have lived in the United States my whole life, and currently live in the state of Pennsylvania.

2- Are you working in any special company?

I’ve been working for myself since 1999, although I’m technically incorporated.

3- If you were a person who was chosen to write a secure web service, what would you use to write your web service – PHP, ASP.NET, Zend, etc?

PHP is my first language of choice. I have worked with ASP.NET (in C#) and think it’s pretty good, but it requires Windows to both develop and to run, which is a problem for me. I like aspects of the Zend Framework, and occasionally use it piecemeal, but don’t use it extensively or exclusively. If I were to write a secure Web service today, I’d do it in straight-up PHP.

4- Have you been working on any new book lately?

Yes, thanks for asking! In the fall, my most recent new title came out: “Effortless E-Commerce with PHP and MySQL” (New Riders). The fourth edition of my “PHP for the Web: Visual QuickStart Guide” just came out in March 2011 (Peachpit Press). I just began writing the fourth edition of my “PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide” (Peachpit Press), which should be published around August 2011. (All dates are for the English language publication in the United States; availability elsewhere will follow.) In 2011, I’m also going to try self-publishing, starting with a book on JavaScript.

5- Nowadays programming is lot easier with current frameworks than a couple years age, some programmers prefer to use frameworks like CodeIgniter, Zend, etc. Do you prefer working with these frameworks, why and why not?

I’ve never used Kohana or CakePHP or CodeIgniter, although I’ve heard good things about them all. In 2006, I started using Ruby on Rails and like it a lot, although I don’t normally use Ruby for Web work. In 2009, I discovered the Yii framework and fell in love. It’s a great framework for PHP developers. I have used, and still use, the Zend Framework, but just don’t care for it as the basis of an entire Web site.

6- Could you tell us one of your greatest programming experiences which you had?

I can think of two important experiences, years apart. I tend to think of the greatest programming experience being the most recent one, or one of the most recent ones, in that one should always be improving as a programmer, meaning the work you did yesterday should be better than the work you did the day before. I have a client that I do a lot of work for and one of the best things about this client is that he gives me free reign to use the tools or approaches I think best. The project itself, a Web site, wasn’t extremely complicated, and I wrote the heart of it using the Yii framework. This provided quick development time, complete CRUD control, secure forms, and solid access control. One aspect of the site required dynamic PDFs as output, so I used the PDF module from the Zend Framework (within the context of a Yii-based site) to handle that. Part of the administration was complicated enough that I didn’t think Ajax and jQuery was the right solution, so I used Flex to create a Flash application for that particular part of the administration, with Web services provided by Yii. None of this was revolutionary or extraordinarily advanced, but reinforced my belief that there’s never one “always right” tool for the job. It’s best to have lots of tools in your toolbox so that you can choose the right one for the task at hand.

Another important experience happened ten years ago and wasn’t a programming one, but rather a business one that greatly impacted my programming career. I worked with a small team of people on a startup project. It was a very good idea, reasonably financed, and well marketed. Unfortunately a site that should have been successful never was, in my opinion, because of a lack of good leadership. I learned two important things from the experience. First, just having a good idea, or even executing a good idea, does not necessarily mean it will be successful. Many factors go into success, only some of which are under your control. Second, if I’m going to spend my time working for free on a project in the hopes it succeeds, it has to be my project. There’s just not enough time in the day to spend it trying to create someone else’s vision.

7- What other affairs do you do on your free times?

I used to like to read a lot, mostly fiction, and see movies. I’m also a big fan of many sports. In 2006, my wife and I had twins, so pretty much all of my free time since then is spent being a dad. Which is a pretty good gig, all in all.