King Kong

Watched the new King Kong movie last night.  It was actually pretty good.  My only complaint was that it seemed a little long.  It definitely succeeded at being a heart-wrenching tragedy, though.  Excellent sound too.

Interesting seeing Jack Black in a "villain" role.  He is such a likeable guy that the self-serving movie-maker was still likeable at the end – after all the dust had settled on the corpse of the kong. 

Dataface 0.6

Since the end of school I have been working feverishly to finish my next release of Dataface.  Version 0.6 will offer some nice internationalization features in addition to improved templating and action support.

One major deficiency , however, was recently pointed out by a Dataface user:  Dataface currently doesn’t support relationships to one-self.  This sort of relationship will be crucial for any future development of a CMS based on Dataface.  It will be a delicate ordeal adding this support as I will have to rewrite much of the relationship code – but I think I’m up to the challenge.  Thank God for the good ol’ SQL Parser.  With that little tool, anything is possible.

 

Taking the Summer Off

I have decided, after much thought, to take a break from school for the summer.  I have one class remaining to graduate and was leaning towards Introduction to marketing.  My decision was based on the fact that I haven’t taken a break from School since 2003 and am feeling a little bit exhausted.  I think that a summer away from studies will help recharge my batteries and allow me to return for the right reasons.  As it stands, if I were to take a course in the summer, I would be counting down the days before the end of the semester.  If I wait, on the other hand, I may find some new motivation and even take more than one course.  Who knows?

Internationalization and Multilingualization

I am up to my knees in the entrails of Dataface as I attempt to take it to the next level.  I am currently working on the 0.6 release and hope that it will be available for download in early May.  The big bit that I’m working on right now is Internationalization and Multi-lingualization. 

Internationalization:

I have added a LanguageTool class whose job it is to translate text.  Developers can provide language ini files with translations for multiple languages which the language tool uses for its translations.  Dataface provides a smarty {translate} tag that translates a section of text, so that internationalizing a template is just a matter of wrapping the text sections in {translate} tags and creating the language files.  Once one translation is done, the language file can be translated easily to produce additional translations.

Multilingualization:

 One of the more difficult problems to solve in Data driven applications is how to deal with mult-lingual content in the database.  Dataface will solve this problem by defining conventions for table names.  For example, if we have a ‘Profile’ table with fields "ProfileID", "Name", "Phone", and "Blurb", and we want the "Blurb" field to be multi-lingual,  then we create an additional table for each translation named "Profile_<language_code>" where <language code is the 2 digit code for the language (e.g. Profile_en would contain the english translation, and Profile_fr would contain the french translation).

Then Dataface would be able to load and save records transparently in the proper language according to the language that the user has selected.  Dataface will provide a wrapper db_query() function that can be used in place of any mysql_query() call that will automatically parse and convert the query to extract the proper language translation.  This will make it almost trivial to convert an existing PHP/MySQL application to a bilingual application without even having to change the application structure.  Just swap the mysql_query() calls for the dataface db_query() function.

In addition to this low-level conversion, Dataface will provide a "Translation Form" to translate records from one language to another.  It will be similar to the existing Edit Record Form, but will show one language translation and allow the user to edit another language translation and save the changes.  Good API support will be available so that forms can be created easily programmatically and placed anywhere in the application without having to change the existing application structure.

Anyways.. stay tuned 

SFU Article

Barry Shell wrote an article about me and Dataface for the FAS newsletter and it showed up on the SFU homepage (http://www.sfu.ca) as one of the stories on random rotation.  That was really cool.  It seems like everyone I know saw it because a lot of people have made comments.