Archive for July, 2008

The lost art of user experience

Saturday, July 26th, 2008

User interface design is my favorite part of the development process. The problems it poses are the most interesting, and thinking up solutions is a form of creative expression.

Users consume applications through the interface - one chance to either deliver a satisfying experience or fail miserably.

It is a topic I have very strong and passionate opinions of, and motivated by this beautiful prose by Jono over at Not the User's Fault, these are my guidelines for user interaction design:
(more...)

Common misconceptions in web application development

Sunday, July 20th, 2008

Over the time I have developed for the web, I have read and heard many assumptions about development practices and technologies. This is my list of common misconceptions in (web) development:

1. OO code is less performant than procedural code

The number one argument against OO application design from procedural advocates. This argument is based more on intuition than fact. The usual examples pit short procedural code against equivalent OO code in which procedural code comes out triumphant as more terse and performant.
(more...)

Handling mail and mime in PHP using the Zend Framework

Friday, July 18th, 2008

Handling mail is a very common requirement in web applications. Even the most basic sites usually have a contact form that sends a mail through the server instead of putting a contact mail address for spam-spiders to find. Using PHP's built in function (aptly named mail() ) is relatively straightforward - until you need slightly more advanced features, such as adding and encoding email headers or sending multiple mails efficiently.
(more...)

Comet is coming

Wednesday, July 16th, 2008

In a recent article in which I wrote about the HTML 5 draft, I mentioned a server notifications API and hinted that it will standardize a technique known as Comet. So what is Comet anyway?

Comet is an event driven communication scheme with between a web-browser and a web-server. In the normal flow of an http request, a web server can not initiate communications with the client (the web browser) - it can only respond to requests. Comet declares a reversal of roles, in which the server can notify the client whenever new data is available. This technique is very useful in a constantly changing environment such as stock prices or online messaging (chat).
(more...)

The Advancing PHP Developer Part 5: Design Patterns

Saturday, July 12th, 2008

5. Design Patterns

A design pattern is a general reusable solution to a recurring design problem in object-oriented systems. Design patterns are essentially blueprints that suggest how to solve a particular set of OO design problems while adhering to OO best good-practices (which I've recounted in my Object Oriented part of this series).

To explain by example, lets have a look at the Model-View-Controller pattern, a common pattern in use on the web and a source of much confusion amongst aspiring developers. The Model-View-Controller pattern (abbr. MVC) is a general solution for decoupling domain logic from the user interface, resulting in much better maintainability for both.
(more...)