A warm welcome to everyone who’s joined us today at School of Information Systems @ SMU, Seminar Room 2.4. Do feel free to drop by if you are around the area. Today, we have an interesting company showing us cool stuffs and we will be covering Architecture of a Web 2.0 Enterprise PHP application, Unified Communications Project as well as touching on PHP basics.

8:00pm: First, we have Vikram Rangnekar who is from Voice Route that specialises on VoIP in open source. Voice Route started off in the US in 2005 and they are curringly in USA and Singapore. There are currently about 600 customers including Verizon and Motorola and strategic partners such as Starhub. The Druid OSE is also available online where people can download and peruse.

Today, they are going to present a demonstration on how their product work.

The software interface to control the phones that are plugged in is simple to use and supports various protocol such as that from Cisco. Some of the features include a dial pattern Wizard, which is able to collect numbers and "send it off to somewhere". There is also scheduled routing which is useful for conferencing. The hardware also works with off-the-shelve hardware trunks and automatically configures the trunks when plugged in.

In addition, there are standard features that include call records – for missed, received and dialled calls, standard reporting, and a unified mailbox that connects other IM protocols as well. For call routing, there’s call forwarding and this feature called "follow me", which allows callers to "follow" the users. There’s also some blocking features that will allow you to block your ex-girlfriend from calling you (hey!).

As the control panel is web-based, users are able to log into the server to control the various aspects of the hardware. As this is open source code, it’s very active in that there’s constant changes to the software.

Coming back to the slides…

Vikram presented an evolution of the web application, which he timed from Web 10000 BC to Web 1.0 and finally to Web 2.0 – that encompassed AJAX, Comet, Flex/Flash and so on. For Druid OSE, they actually make use of a lot of the Web 2.0 stuffs and PHP as Middleware – which is used to serve the data structures. They also make use of Json/JsonRPC for making calls such as "getting a list of names" or "getting a lot of numbers" from the server.

He also touched on the online recreation of the desktop application, which generally comprises of dynamic content, providing a familiar feel and behavior and a responsive interface. The application (Druid OSE) is also data driven and hence uses structured data.

In the aspect where PHP as Middleware, there is an SOA Architecture (service oriented architecture) between UI and PHP, which call PHP methods from the UI – and these methods return Json serialised data structures. The application also makes use of pass function arguments instead of $_POST. Most people are familiar with $_POST but the team prefers to call the functions directly. 

The Druid team also has a philosophy that helps them keep their code clean – by keeping PHP code and HTML code separate. They use something called the "Dojo" which is some Javascript UI framework. By using this method, the Javascript code actually "re-renders" the PHP code within the HTML code through class calls in DIV tags that keeps the HTML code clean.

Vikram is moving into the development of Druid modules by using the internals of the auto-attendant module and unified mailbox as examples. He’s now logging into the server through PuTty. There were questions from the floor if the team actually developed the hardware. In actual fact, the hardware is actually done by another company and they are responsible for the application within the box. Vikram also showed what components that are running within the box which includes IMAP components.

Where the code is concerned, there are actually 2 aspects to the code – a community open source as well as a customer-required code core which is not available to the open source community. This is essential because these are specific needs to a customer. It is not intentional for the customized code to be closed but rather a necessity since it is their specific and separate need.

On a closing note, the Druid team is very familiar with Dojo and they’d like to thank Dodo (http://www.dojotoolkit.org), Dovecot, Jabber2, Qugga and Asterisk for their works. More information may be found at their website, http://www.voiceroute.org, on facebook Voiceroute Open Source as well as IRC at #druid on irc.freenode.net.

8:48pm: The previous session has overran a little because the interest in this was a little underestimated – for more questions, you may send your questions to Voice Route. Following up, Miccheng will be covering the topic on whether PHP is for WIMPS. Yes, are you a wimper? We are now moving from a topic on open source to closed source. 70% of PHP developers run on Windows because it provides a familiar "My company runs on Windows Servers" GUI environment. In fact, ASP and PHP can co-exist.

There is a weak link in IIS and PHP. The first option is that IIS is a multi-threaded (high concurrency) server, and we can run it there. The second option is to have it as a PHP-CGI "one request per process" module. The best solution so far is the use of FastCGI which is still essentially "one request per process". However, there is a performance improvement from 40 RPS to 1600 RPS. Latest tests with native response caching/ kernel output caching an go up to 6000 RPS (which is not verified yet?).

The recommended configuration is Windows Server 2008, IIS 7 with Fast CGI, Mod Rewrite Pro, MySQL 5 and Zend Core 2.5. There are more resources, a list of which will be available on the PHP Meet up website. There’s a demostration on http://miccheng.homeip.net:81/. (Quick, go do a DOS attack!).

However, it is still recommended for hardcore developers to make use of Linux and Apache, since PHP has better performance on native Linux and Apache without having to go through a "middle" IIS. There will be some free stuffs given out later if you fill in your feedback forms later. =)

9:08pm: Break time! We’ll be back shortly =)

9:38pm:  Welcome back to the PHP Meetup! Now we have Adrian Quek from Ablewise. Those who were there at the Facebook Garange will recognise him. They are currently setting up their workstation that runs on Ubuntu, but are currently trying to fix it properly. Miccheng is giving a brief up on what’s to come. From next month, the PHP meet up will resume on the second Wednesday of every month so that it will not clash with the Linux meet up that is just a few doors away now. They meet every 3rd Wednesday of the month. Coming up, we have Michael Lim from Comiqs, which was Techcrunch’ed. Also, we have Choon Keat from Ruby Brigade who also produced Shared Copy which was also Techcrunch’ed.

There’s now a call out to the core team, which includes Jean who is currently mute and also a call for volunteers. If you would like to sponsor, you may also contact Miccheng who will give you a shout out during the meet ups. There’s also going a planned conference this year, somewhere in October and there’s a need for volunteers. If you would like to help out, you may email Miccheng at miccheng@php.com.sg. You may also spam him.

There’s also a shout out to The Indulge Restaurant which is at the basement @ the Cathay and basically Miccheng is just killing time now.

There’s a conference planned for May for iPhone for iPhone app developers. Anyone who is interested may also email Miccheng or Bernard Leong from SG Enterprise.

Now that Adrian is done with the preparation, he’s going to give an introduction to Image processing with PHP. Originally, he’s using Ubuntu with Apache and GD Library. He’s showing a rough guide for GD2 installation, but generally most of these instructions are available on like. There will be some GD2 demos, including Captchas (anti-bots verification), and resizing, copying and cropping pictures.

The code is really small, but I believe that if you email Adrian, he’d be glad to email you the codes. However, just as you might be disappointed that you can’t get to see any demos, we guys at the floor also can’t see anything because Murphy’s Law just kicked in – anything that can go wrong will go wrong.

There are a few functions that are being used for Captcha including imagecreatetruecolor, imagecolorallocate, imagefill, imageforntheight, imagefornwidth (size range is 1 to 5), imagechar, and imagesetpixel. For image resizing, copying and cropping, the functions are imagecreatefromjpeg, imagesx, imagesy, imagedestroy and imagecopyresized.

Due to the lack of demo, there will be (expectedly?) less questions – but despite this, the short presentation was very fun and easily understood. He’s also agreed to try a Windows version in the future. It’s ok Adrian, all of us forgive you. =)

10:04pm: Lucky draw time! There’s going to be 2 copies of Windows Server 2008 and a PHP book to be given away – which is won by DK! Taiko! =( Goodnight everyone and thanks for joining us in this wonderful session. =)



Reader's Comments

  1. Tianhong | March 19th, 2008 at 11:05 pm

    walau he win so many times le…. muz ban him from meetup sooner or later.

  2. Miccheng | March 20th, 2008 at 12:36 am

    Ha ha… Tian Hong… come for meetup lor… u can win prizes also. 😀

Leave a Comment

%d bloggers like this: