The Boston Diaries

The ongoing saga of a programmer who doesn't live in Boston, nor does he even like Boston, but yet named his weblog/journal “The Boston Diaries.”

Go figure.

Thursday, Debtember 13, 2007

Is separation of logic, display and language even possible?

I was just given a new project from Smirk, with one hard requirement (other than the specification of what the program is supposed to do)—it has to be in PHP (primarily because a) it's a web-based application and b) because it's interfacing to a bunch of other web-based applications written in PHP).

There is a chance down the road that this new project will be released as open source (much like X-Grey), and in order to gain traction as an open source PHP web-based application, it needs to support MySQL, although for our own use, we need to support PostgreSQL, which is nice, since then right out of the box, it'll support two popular database engines.

The only other sticky problem is i18n. I mean, other than character set issues, I want to make it easy to translate the software into other languages, which means keeping most of the text separated from the actual code. And while this is possible with PHP (with lots of self-discipline on the part of the programmer), I would also like a way to separate the language from the layout mechanics.

In other words, I would like to have the program logic, display logic and language independent (as much as possible) from each other, so that it's easy to translate to another langauge, and it's possible to change the look and feel of the program (to match an existing website).

Tall order, and I'm not even sure of the best way to go about handing this. I've seen how some other PHP web-based applications handle it (such as osCommerce and SugarCRM) and to say it's an ugly hack is an understatement.

Obligatory Picture

[The future's so bright, I gotta wear shades]

Obligatory Contact Info

Obligatory Feeds

Obligatory Links

Obligatory Miscellaneous

You have my permission to link freely to any entry here. Go ahead, I won't bite. I promise.

The dates are the permanent links to that day's entries (or entry, if there is only one entry). The titles are the permanent links to that entry only. The format for the links are simple: Start with the base link for this site:, then add the date you are interested in, say 2000/08/01, so that would make the final URL:

You can also specify the entire month by leaving off the day portion. You can even select an arbitrary portion of time.

You may also note subtle shading of the links and that's intentional: the “closer” the link is (relative to the page) the “brighter” it appears. It's an experiment in using color shading to denote the distance a link is from here. If you don't notice it, don't worry; it's not all that important.

It is assumed that every brand name, slogan, corporate name, symbol, design element, et cetera mentioned in these pages is a protected and/or trademarked entity, the sole property of its owner(s), and acknowledgement of this status is implied.

Copyright © 1999-2024 by Sean Conner. All Rights Reserved.