I’ve been reading the book Technical Blogging, by Antonio Cangiano, over the past couple of months and am glad that I am. I’m reading it in the hopes of improving the quality of (and, potentially, income from) this blog, and I think it will pan out. Continue Reading…
Archives For about
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?
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.
For quite some time, at least a year or more, I’ve been meaning to redo my company’s Web site (www.larryullman.com). Sadly, even though I largely write about and do Web development, my own site is always the last one that I work on. Now that I’m between books, I actually have the time to get to my own neglected site. I’m happy to say that the new version of the site will go live this weekend, but there’s more. First, a little background…
Digital Media and Communications Insights, Inc., the company that I work for, and am a very minor owner of, was founded by my in-laws as a vehicle for my father-in-law’s telecommunications consultancy. In 1999, I started by own “branch” of the company, doing primarily Web development, training/teaching, and, of course, writing. In the past decade, my father-in-law retired and although I sometimes hire individuals for project work, yours truly is the company’s only true employee today. Thanks to the success of my books, and later the blog, the Web site gets a decent amount of traffic (north of one million hits per month), and I think it is safe to say that pretty much no one cares who or what DMC Insights is. Visitors want to download the code for a book, visit the support forum, email me, and maybe even hire me to work for them, but the existence of DMC Insights really doesn’t factor into the equation. In revamping my company’s Web site, I’ve often considered dropping the company facade and just putting my name front and center (my apologies if any of this sounds egotistical). Serendipitously, the domain name www.larryullman.com just became available this month, after being owned for the past ten years by a Canadian gentleman, named…Larry Ullman. I am now the proud owner of my namesake domain and have been busy creating a new look for it. The new version of the site is now ready to go (or ready enough!), so this weekend I’ll be instituting redirects on www.larryullman.com to direct all traffic there (unfortunately, half a million books are in print with my company’s URL on them). Hopefully this will be a smooth process, but there will inevitably be something that I missed.
I hope that everyone likes the new site once it’s up and, as always, I gratefully welcome all thoughts and feedback on what I’ve done.
My series on Learning the Yii Framework has been getting plenty of attention, largely, I’m sure, due to the fact that the official Yii documentation references it first, being “best suited for people who just start with MVC and/or Yii programming”. Most of the comments I’m seeing are just complimentary or are asking for assistance in getting something to work. However, I’m getting a few questions along the lines of “Why should I use Yii?” and “Is Yii better than XXX framework?” I guess these are natural questions, but here’s the thing: I’m not a car salesman. I have absolutely no interest in convincing people to buy things. This even goes for my own books, which is the primary basis of my income: I’m not going to try to convince anyone to buy my books. I just don’t have that gene in me. Make no mistake: I would like you to buy my books (multiple copies of each, preferably), but I want you to buy my books because you want to, and because they’re good books, not because I’ve talked you into it. This is true for hiring me to do work. I’ve always had a policy that I wanted companies to hire me again for future work because they want to, not because they have to (tangentially, a hallmark of a good application is that anyone qualified could step in and work with it; I don’t handcuff the client into bringing me back in for any future changes).
I’m thinking about this now because someone just posted a question that included “Can you argue why I should choose Yii for my next project?” And the answer is “No, I can’t. In fact, I won’t even try.” Use Yii or don’t use Yii based upon whatever criteria you use to decide this things. All I’m trying to do in my work is explain how to use Yii, should you want to. And the answers to “Is Yii better than XXX framework?” include “I don’t know (because I haven’t used XXX).” and “Maybe, maybe not.” and “Probably in some ways and probably not in others.”
Yii works for me, for its pretty good documentation, its jQuery support, its auto-code generator, and more. For different reasons, PHP works for me, as does Adobe AIR and Flex and … These are technologies that I’ve found a use for and that appeal to how I think and work. It doesn’t mean that any of them are for everyone, let alone better than X, Y, and Z. So I’m never going to try to convince anyone that this is better than that. What I will do is explain how to use this and probably mention what I like about it. If you prefer that to this, fine. Maybe that’ll give me incentive to check out that, too. On that note, I will suggest that you always consider trying new things, even if you’re happy with what you’ve got. That’s how we learn and how we make progress.