Sunday, March 13, 2011

Internship — Week 1

How many new technologies or topics can one learn or research in 5 days? That would be 4: Symphony, Symfony, Facebook Connect, and WordPress. Other than Facebook Connect, I was able to install and have a working website with each of these technologies. In addition, there was even time to research GPS mobile phone tracking solutions and start comparing WordPress and Drupal.

Why am I learning all these things or doing the research? To get familiar with current environments and preparing for up-coming projects.


Symphony is an XSLT powered open source content management system (CMS). This is the smallest CMS package (zipped) I have ever seen. How small? 836 kilobytes (KB) small. To use this, developers should know XML, XSLT, HTML, and CSS. PHP knowledge is not necessary unless you are developing extensions (Drupal calls these modules and WordPress calls these plug-ins).

The online documentation is excellent and there are easy to follow step-by-step tutorials.

Similar to Drupal, user/developer can easily define the structures for the content. That is, a structure can have as many fields as it is necessary for that type of content (without programming).


Symfony is an open source PHP development framework. This framework is to streamline PHP development by generating standardized data access code. Unfortunately, to use this, developers need to know more than PHP, XML, HTML, and CSS. One needs to know one of two object-to-relational mapping (ORM) software for PHP (Doctrine and Propel),  YAML (used to describe data in XML like structure), object oriented programming (OOP), and model view controller framework (MVC). As well, he/she needs to be familiar and comfortable with server command line commands. Yes, that means, he/she will need to have access to server command line.

Although there are a fair amount of online documentation and step-by-step tutorials, they are not the easiest to follow / understand.


Facebook Connect / Authentication is an API (application programming interface) that users of your application to use their Facebook account to login to your application. Once logged in, your application would have access to user's information (given he/she has granted your application to access them). It also, allows your application to execute Facebook features like Post and Like.

There are two methods to use Facebook Connect: client-side and server-side. Client-side is where the user's browser making the calls to Facebook via Facebook JavaScript SDK (software development kit). Server-side is where your application on the server making the calls to Facebook via HTTP/HTTPS requests.


WordPress is a popular open-source CMS. WordPress originated as a bogging system; hence, contents are made up of posts. Perhaps it is this simplicity that makes WordPress easy to use/implement (at least on the surface).

WordPress core is not as feature rich or flexible as Drupal but there are many plug-ins to provide the missing functionalities. It is my option that the more plug-ins used, the more complicated / difficult it is to maintain / upgrade the software.

The online documentation / tutorials are not the most detail or easiest to follow. Fortunately there are many 3rd party sites / books to fill in the gaps (especially when it comes to step-by-step for beginners).