PHP Programmer Job Available

So I realize I’m cheating by putting this on the front page instead of in the [url=]Jobs and Opportunities Section[/url], but what are ya gonna do? 😀

As many of you know, I’ve been running my own [url=]consulting and web development business[/url] for the past couple of years. I’ve been doing it alone so far, but I’ve been wanting to expand as soon as I could. Well, I’m happy to announce that its about time to start expanding. I have too much load to handle myself and I have a couple of projects that could turn into pretty big deals. I’d like to hire someone on a contract basis to begin with — with the possibility to become fulltime later on (I’m really just lazy and don’t want to set up payroll yet). I’m currently located in offices in Overland Park but telecommuting is a possibility.

You’d be working on projects large and small. Our clientele ranges from small KC based businesses to entrepreneurial startups to large government organizations in the Department of Defense.

If you are interested, [url=]read more![/url]

Here is what I’m looking for:

A PHP developer with a decent amount of experience. Someone who has built fully functional applications in the past and is motivated and willing to learn more and grow with the company. You’ll need to be able to read other people’s code and improve upon it. Good documenting skills are required!

* A degree in Computer Science is a plus (but not required)
* Basic Sys Admin abilities (any type of unix experience) is a plus
* Knowledge of and experience in other languages than PHP is a plus
* Extensive experience with any open source content management system (such as Drupal) is a plus
* SQL expertise is a huge plus. Basic SQL experience is at least required.

You’ll be developing in both PHP4 and PHP5 and using MySQL/Postgres/Oracle in a variety of different environments. You’ll be asked to do both object-oriented and procedural programming.

Pay depends on your abilities and experience. Please include your own salary requirements (if you have them) in your resume or cover letter. Send your resumes to the e-mail address listed in my profile.

– Doug

Is PHP growing in Kansas City?

As Dan mentioned in his meeting summary, we discussed numerous available PHP jobs during the last meeting that we knew about that had not been filled. I just added another to our [url=]Jobs and Opportunities Forum[/url], which already has several posted.

A quick search on found 5 or 6 jobs in just the Olathe and Overland park areas. And a search on yielded several more in KCMO and KCK. It seems that there are just as many (or more) PHP job postings as there are ASP.NET or JSP job postings.

What do you guys think? Is this a sign that businesses in the midwest are finally embracing PHP as their preferred development language? Or am I crazy?

Has anyone noticed an increase in PHP usage among area businesses?

2005-April: Form Processing

As promised, our April discussion will be on form processing. We’ll discuss different techniques available and hopefully find some solutions to the common problems we all face when using forms in our web applications.

For now, the [url=]meeting notes are hosted here[/url].

A [url=]functional example of a multipage form with source code[/url] is also available.

Pro Apache Book Review

Pro Apache, written by Peter Wainright, is a behemoth of a resource for everything you ever wanted to know about Apache. The name implies “Professional” and that is the intended audience of this book. People playing around with home websites probably won’t find this information useful. If, however, you are in charge of your company’s important web servers, I think you’ll find this book extremely helpful. It covers a lot of content in far more detail than you’ll get from the online Apache documentation.
The book covers both Apache 1.3.x and 2.0.x. One of the early chapters discusses the differences between the two. Throughout the book, the author usually points it out whenever there is a difference in how they operate or whenever there is a configuration directive that is only found in one of the versions.

I don’t recommend trying to read the book straight through. A lot of the early chapters talk about how nitty-gritty details of how Apache functions. These chapters, while informative, can be a bit boring. If you really want to get to the meat and potatoes, skip to the chapter that you’re most interested in. Want to know about Name Based vs. IP based virtual hosting? Skip to chapter 7. This chapter has everything you want to know about virtual hosts, with a lot of extra features you might not have known about, such as the ability to assign and dedicate apache child processes to specific virtual hosts.

There is a specific chapter dedicated to performance tuning, of course. It talks about the different process models available and explains all of the performance enhancing configuration directives in detail. In stress testing my own servers, a lot of this information was very handy. If this chapter falls short in any way, it is the lack of information regarded stress testing tools available. If you want to stress test your dynamic web applications, a simple search on the web will find you far better solutions than the benchmark tool he talks the most about in the book (ab). He briefly mentions two others in the book, but I felt he could have done a better job of explaining why you’d want to use them.

The chapter on dynamic content was the one chapter that left me a little perplexed. He talks about CGI, the best ways to run CGI scripts, running server side includes (SSI), running Perl scripts, and running FastCGI for increased speed. However, there is not a single PHP reference in this chapter. He doesn’t mention PHP until the final chapter of the book, where he talks about extending Apache with 3rd party modules. I understand that this isn’t a PHP book, but I felt he could have talked about PHP a little bit more than he did.

Other chapters, of which I just briefly skimmed, cover topics such as user authentication, SSL, log files, fault tolerance and clustering, proxying, caching, and server security. Many of these were very interesting, and I plan on using this book as a reference whenever I need more information on any of these topics.

If you run a high-load web server that needs a lot of customization or performance improvements, this is a great book to take a look at. Almost everything you need to know about Apache is in here and most of it is explained very well. If you are a beginner, you may want to look elsewhere. This book is meant for professionals and hardcore enthusiasts that want to push Apache to its limits.

A couple of links….
[url=]Publisher’s information on the book[/url]
[url=] Link[/url]

– Doug

SQLite and Choosing a Database Abstraction Layer

So, have you heard of this new SQLite embedded database? I was just reading about it the other day.

SQLite is a C library that implements an embeddable SQL database engine. Programs that link with the SQLite library can have SQL database access without running a separate RDBMS process.

Apparently they are going to implement it in the next version of PHP. This is a good thing. Sure, it will be slow and simplistic, and probably not very scalable for heavy use, but it has one thing going for it: distribution. Every PHP installation will have it. Have you ever been writing a program that will be distribute to multiple clients and worried that they won’t have the right database installed? or any database installed? Soon you won’t have to worry, because as long as they have PHP, they will have SQLite.

So now the possibility of using this in the future on servers that aren’t my own has intrigued me. And I’m already intrigued by some of the other free databases out there. I’ve heard PostgreSQL development is really doing well and more and more people prefer it to MySQL. I’ve also heard a little about some new database called Firebird or something like that. So… why am I still coding all my PHP applications with mysql_query() functions? Why am I not using a database abstraction library so that I can easily use my applications with any database I choose? That’s a very good question. Maybe I’m stupid, or simply too lazy to try something new. I’ve thought about it a lot over the past few weeks. I think my biggest fear with choosing a library to use is standards. I know that the built-in mysql functions are going to be around for a while. I don’t know if I can say the same thing about some of these database abstraction layers. Some might claim that PEAR DB is the standard since it comes packaged with PHP. But there is also another called DBX that comes with PHP. So does that make it the standard too?

I just read an interesting forum thread where John Lim, author of ADODB, claims that PEAR DB is obsolete and the new versions are breaking backward compatibility.

Tomas worked hard on PEAR DB, but it was made obsolete by PEAR MDB. It would not have been too much trouble to make MDB compatible with PEAR DB. ADODB has a PEAR DB layer, but Lukas (MDB lead) decided against it. In fact, they are still releasing PEAR DB as the default abstraction layer, so more people are going to hate the switch when MDB becomes the default standard.

Now Lukas has decided that MDB 2.0 will break MDB 1.0 compatibility.

I think Lukas is a smart guy, but i don’t think it wise to treat API’s as toys to play with, particularly if you want to bet your company’s products on a software library.

So long as PEAR remains a coders playground, depending on PEAR does not mean that anyone is looking after your interest either.

Maybe John Lim is just trying to get people to use his product, ADOdb, instead. But if what he says about PEAR DB is true, then thats a big “STAY CLEAR” sign to me. I’m already going to have to rewrite thousands of lines of code if I decide to switch to an abstraction layer. I don’t want to have to do it again each time they come out with a new version. That’s exactly what I am afraid of.

One thing is clear to me. I need to pick an abstraction layer soon. I’m starting new projects all the time and the longer I wait the more code I will need to rewrite later. So which to choose? Right now I think I’m leaning toward ADOdb. It is very fast, easily portable, supports almost every database out there, and has many features above and beyond what I’m used to. I’ve also been watching it for about a year and new versions are released often, but never break backwards compatibility.

Anyway, what are your guys thoughts on this?

Free PHP IDE w/ Debugger

There is a new free PHP IDE available from a company called Maguma. It is for windows 98, Me, 2000, and XP. If you download the complete version it installs PHP 4.3 on your machine and it adds debugging functionality to the IDE. Sounds pretty nifty. I downloaded it the other day on my home computer but haven’t really tried it out yet. If anyone is looking for a free PHP development program with advanced functionality you might want to try it and let us know what you think.

PHP CLI Ncurses

Link: Using Ncurses in PHP

PHP Command Line Interface has made some vast improvements over the past few months. One of which is Ncurses functionality. I read this article at and thought it was very cool. It allows you to format the text on the screen. The article has screenshots to help you understand what it really does.

Before everyone tackles me for using PHP for shell scripts, I’d like to present my reasoning. Sure, even with the advances PHP has made recently, PERL is still probably a better option for shell scripting. Quite frankly, I don’t have the time to learn all the ins and outs of PERL just to write a simple script to dump some database records. I already know how to do that in PHP, so why not use PHP? I think sometimes people underestimate the value of having one language that can do everything you need. It keeps syntax confusion to a minimum and allows me to study the more advanced aspects of the language instead of just knowing the basics of multiple languages. Not to mention it cuts development time by ungodly margins.

I urge you to give PHP a try for shell scripts (That is, unless you are already a PERL god, which I am not).