Why Do Cool Kids Chose PHP to Build Websites?

PHP Developer's Journal

Subscribe to PHP Developer's Journal: eMailAlertsEmail Alerts newslettersWeekly Newsletters
Get PHP Developer's Journal: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


PHP Authors: Hovhannes Avoyan, AppDynamics Blog, Trevor Parsons, Andreas Grabner, Harald Zeitlhofer

Related Topics: Apache Web Server Journal, PHP Developer's Journal

Apache Web Server: Article

Taking Linux, Apache, PostgreSQL, and PHP to Their Logical Extreme

Taking Linux, Apache, PostgreSQL, and PHP to their logical extreme

Beyond the core Linux/Apache/PostgreSQL/PHP stack, Bart is quick to mention two other OSS projects that were absolutely essential for being able to successfully migrate from the company's herd of legacy systems to LogicOps. These are:

  • UnixODBC, a simple and straightforward ODBC manager for *nix systems
  • FreeTDS driver for Microsoft SQL Server and Sybase databases, which together with UnixODBC allowed the Logicworks team to bridge the gap between PHP on Linux and MS SQL Server on Windows 2000
  • The UnixODBC/FreeTDS combination proved to be rock-solid, stable, simple-to-manage, and extremely fast
Source Code Matters
For maximum performance, the team deployed on a dual Opteron system with Red Hat ES4 for x86-64. Any components of the application stack that weren't provided by Red Hat for 64-bit support, they compiled themselves. Everything was humming until they hit a show-stopping bug: the queries between UnixODBC and PHP5 resulted in segfaults if any fields were NULL. After recompiling with debugging symbols and spending a quality hour or two with GDB, Bart smoked out the culprit - PHP thought that the length of the field in the ODBC struct was the maximum value for a 32-bit integer, which struck him as a suspicious number when dealing with 32/64-bit compatibility. "After a quick look at the sources for the two packages, I determined that where one was using a signed long long, the other was using an unsigned long, resulting in the misinterpretation of the field length that caused the out of control memory access. Changing a single word in the declaration of the struct in PHP5's ODBC implementation solved the problem completely."

The take-away is that these kinds of incompatibilities can occur in any software, open or proprietary - the difference here was, because the software they were using was open source, Bart and team had the capability to solve the problem themselves and get back on track. Furthermore, since this particular bug resulted from an incompatibility between two different products, it's uncertain that, had the team been using closed source tools, they could have cajoled two different proprietary software vendors to work together to resolve the issue.

Futures
With the largest two components of the build out of LogicOps complete - namely the initial deployment with network documentation and the migration from the previous proprietary ticketing system - the team looks forward to having some fun implementing customer-managed DNS, customer management of complimentary mailboxes, and building out a demonstration database so that potential customers can see both the public interface as well as the interface Logicworks engineers use. Next comes tools for customers to define service request templates. For example, a customer could submit a request that, in case of failure of a master application server, the application will automatically failover to a backup database server. This capability, says Bart, will allow Logicworks engineers to respond speedily to complex system warnings and failures, and to do so in accordance with their clients' requirements. These components are slated to come online in the next few months, after which Bart and team plan to return to more operations-facing improvements. These will include an interface for managing firewall configurations and integration with their accounting system, and they'll continuously evaluate additional features. At the current pace, they estimate a year and a half of work before they "run out" of systems to integrate into LogicOps. (See Figure 3)

Beyond this impressive short and medium term set of feature enhancements, they're looking at polishing the code and preparing it for release with an open source license. Having leveraged the strengths of open source software for the development of LogicOps, the company is unified in its desire to be a good open source citizen by giving back. Bart and team will face challenges with things like end-user documentation and building better support for out-of-the-box deployment, but, in Bart's own words, "we definitely plan on sharing our secret recipes. After all, the real secret to doing well in this business is extraordinary customer service and there's no place to download that piece of software."

What It's Worth
One of my favorite television advertisements of all time was the post-bubble IBM ad where the young engineer uses the word "cool" to describe a new IT project to a white-haired executive, who immediately gives him a tongue-lashing for how "cool costs me money." The engineer, whom the audience is rooting for, quickly redeems himself by explaining the business benefits of the technology. To which the exec simply replies, "Cool."

LogicOps is a great, real-world example of how a very cool, and in this instance open source-based, automation tool helps a business in a tough market be more prepared, better informed, and more responsive. Being able to solve simple problems more quickly, and even automating solutions, allows Logicworks to pay a lot of attention to complex customer problems. The LogicOps system has even drawn praise from Logicworks' SAS70 Type II certification auditors because it doesn't just track assets, but is flexible and extensible enough to track controls and procedures as well.

Cool.

More Stories By Greg Wallace

Greg Wallace is Co-Founder and Chief Marketing Officer of Emu Software, Inc. Greg received his MBA and Masters of International Affairs degrees from Columbia University in New York City. He also spent a year as a Rotary Foundation Scholar at the University of Barcelona, Spain. He can be reached at [email protected]

Comments (2) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
LinuxWorld News Desk 10/25/05 03:37:53 PM EDT

LinuxWorld Feature: Taking Linux, Apache, PostgreSQL, and PHP to Their Logical Extreme. Let's play word association. I say 'Web Hosting.' I bet 'fat margins' didn't jump into your head. More likely, you thought of some of the 'where are they nows' of the bubble, like Exodus and PSINet. Let's do another round - I say 'New York City,' and I'd wager that 'cheap rent' wasn't the first thing you thought of, either. So it may surprise you to learn that one hosting company that's been around since 1993 and that's actually making money, Logicworks (www.logicworks.net), just happens to be based in New York City.

LinuxWorld News Desk 10/25/05 03:15:02 PM EDT

LinuxWorld Feature: Taking Linux, Apache, PostgreSQL, and PHP to Their Logical Extreme. Let's play word association. I say 'Web Hosting.' I bet 'fat margins' didn't jump into your head. More likely, you thought of some of the 'where are they nows' of the bubble, like Exodus and PSINet. Let's do another round - I say 'New York City,' and I'd wager that 'cheap rent' wasn't the first thing you thought of, either. So it may surprise you to learn that one hosting company that's been around since 1993 and that's actually making money, Logicworks (www.logicworks.net), just happens to be based in New York City.