After completing the theory of my master thesis, I was looking for a quick solution to implement it. Since I had some good experiences with Symfony framework, I finally decided to utilize it for implementing my master project.

 My project consists of three technologies: Service-Oriented Architecture (SOA), Web 2.0 and Semantic Web. It aims to find a common point between these technologies to make creation of enterprise mashups semi-automatically. Web 2.0 has a wealth of data but poor semantics and difficult integration. On the other hand, While Semantic Web solves the integration problem issue but suffers from a dearth of users. Combining these two technologies will result in a rich Web of data that is usable by both humans and machines. In my research I found out that RESTful web services are the key to this solution. REST-based architecture puts a smiley on SOA, thereby makes it more practical to be used by non-professional users. I proposed an annotation mechanism for RESTful services. The next step was implementing a mashup editor that supports my proposed model. In this step I used Symfony 1.2 that has a good support of REST architecture in conjunction with pOWL. pOWL is a Web Based Platform for Collaborative Semantic Web Development. It consists of 6 stacked tiers:

  • pOWL store – SQL compatible relational database backend
  •  RDFAPI, RDFSAPI, OWLAPI – layered APIs for handling RDF, RDF-Schema (RDFS) and OWL
  • pOWL API – containing classes and functions to build web applications on top of those APIs
  • User interface – a set of PHP pages combining widgets provided by pOWL API for accessing (browsing, viewing, editing) model data in a pOWL store

Although I encountered some problems using PUT and DELETE methods of HTTP, but the final result was great. I could finish my project at three weeks thanks to good and useful Symfony plug-ins. The most time-consuming part was integrating pOWL into Symfony that was done approximately well. I called my mashup editor “SemCEM“. I have not released it yet, but I have some plans in near future to publish a demo version on semcem.com. ………………………………………………………………………………………………….

Diary:

+ Unfortunately thanks to assistant chair of our faculty plus some uninvited issues, my defense session for master degree was postpones to September!

+ My paper entitled “ Using an Enterprise Mashup Infrastructure for Just-in-Time Management of Situational Projects ” was accepted in IEEE International Conference on e-Business Engineering (ICEBE 2009). I am planning to have a trip to China to present it if possible.

 + In August I will have a trip to Amsterdam to make some important decisions for my future!

+ Besides many disappointing side effects of Iran Elections, I had this chance to be familiar with Parsatech Group, an active group with great ideas in IT.

SfCropper Plugin…

March 25, 2008

Today, I wrote a simple plugin for Symfony, my favorite PHP MVC framework. It uses  scriptaculous.js and Cropper.js (developed by David Spurr ) to crop images and create cropped images using PHP GD library.

SfCropperSfCropper

You can download it by clicking here! Installation process is as simple as other Symfony plugins:

1.Unpack and Copy plugin files to your project plugin folder.

2. Enable module in your `settings.yml`:

  {{{

    all:

      .settings:

        enabled_modules:      [default, sfCropper]

  }}}

3. Put sfCropper web folder into your project web folder.

4. Clear you cache:

  {{{

    symfony cc

  }}}

5.Use it:

<?php

use_helper(‘cropper’);

//cropper_image($image_name,$image_id=’crop1′,$default_crop=1)

cropper_image(‘test.jpg’);

?>

+  After many discussions with some of my friends,I want to say that: OK! Your are in right, Symfony is slow in execution (Without any PHP accelerator), but fast in application development! This is a simple trade off. What are you really looking for?! Speed in development process or speed in runtime execution?(or maybe both of them,Lords!) I believe that these are two inseparable aspects.To dive into Agile Programming,you must spend a few amounts of your speed.It depends on you, If your vision is a large-scale web app, you need a symfony for harmonious arrangement of your app components.The time is gone,the song is over… 

www.symfony-project.com

~ From Old Days:

+ Say Goodbye to PHP4… [13-Jul-2007] The PHP development team announced that support for PHP 4 will continue until the end of this year only. After 2007-12-31 there will be no more releases of PHP 4.4.  some of the mostly used PHP applications are only compatible with PHP4, and web hosts cannot just drop PHP4 support , But as long as hosts support PHP4, software vendors will continue to develop with it, even though PHP4 code is often very hard to maintain, debug, and add up to. Now, PHP5 is the future of PHP.We never forget our memoirs with lovely PHP4 ,but we should follow this rule that when a new thing come to bazar, old thing will be disappointed! If you want to support PHP5 go to  gophp5.org and add the name of your host company or software project. 

+ [July 31, 2007 ] IRAN unveiled the world’s largest handwoven carpet, worth 5.8 million $US   and larger than a football pitch, to be laid out in a United Arab Emirates mosque. 65-thousand-square-foot carpet, the work of 1,200 skilled crafts people who spent 18 months working on it. Persian carpets face a rising challenge from Asian countries where labour is cheaper. Our share in the world market has dwindled to 40 percent standing at 480 million dollars in 2006.I hope that this carpet as a symbol of Persian culture , show that the Art still is in hand of Iranians!

Everything should be made as simple as possible, but not one bit simpler.” -Albert Einstein

+ These days I’m working on an automation project for an organization,It was a good oppotunity to experience symfony framework in a real world project. I think it’s a well-formed framework with many good features,It was just a problem for me on symfony: many configurations lead my life to an endless journey to eternity! At this week ,After many efforts, Zend Framework 1.0.0 production released! It’ was a good news  for php community,It’s said that Zend Framework  is now the best class library available for PHP 5 web application development.

+ Today I found a new good PHP editor . PHPEd comes with Unicode compatibility, this is one of the major featured I was looking in PHP editors for years. You can switch to your desired encoding anytime from tools menu->IDE Settings

+ Yesterday,it was a workshop about Ontology Construction in  Shahid Beheshti University.A group of NLP Lab has started it’s work on Farsi Wordnet: a top level ontology, based on general Wordnet for persian language. I hope these activities with a good support and administration fill the blank place of persian language on the world of knowledge descovery systems!

+ Asian Cup 2007 is starting.Unfortunately,The officaial website of this competitions is programmed by ASP and I think it’s too weak in comparison of other similar websites ,both in design and programming! But,an interesting point of this website is supporting for Farsi language after years of silence!

AJAX-MVC Design Pattern

October 3, 2006

Today,I finished my first official AJAX project.It was a CMS for Shaheed Beheshti Skin Reserach center.for my first experience with old knowlege,i think that it was good. As you know,Today,MVC design pattern:Model View Controller is the common approach for designing a web project and many frameworks  have been published for implementing this pattern(for example:ZEND framework,CakePHP and …). RUBY ON RAILS as a greatest framework in this context,shows spread and good performance of this design pattern on the web.AJAX is another issue that attracts web programmers to use it.It’s said that AJAX is a revolution for current web! If we merge AJAX and MVC together,we find a good framework for web designing! I searched a lot for a good AJAX MVC framework,i found a few frameworks in PHP that uses both AJAX and MVC.for example i used Zephyr framework,that is a good and simple framework in this context but it has a few problems,for example it doesn’t support bookmarking and so on…

My purpose was designing a simple AJAX MVC framework,i thought that if we implement controller directly in client-side and use some helper functions such as prototype for AJAX loading we would get  good results! It’s not a new idea but it can be an approach for implementing MVC design pattern.You can see results of my work in action by visiting SBU Skin Research Center Website.