Monthly Archives: April 2009

Ubuntu / Open Source Presentation in Cairo Univeristy

IEEE has organized an open source week in Cairo University, for Engineering Students, i have been happy to be recommended to present the first day.
http://www.ieee-cusb.org/home/index.php?option=com_content&view=article&id=78:open-source-week

I started with a presentation about Open Source, definitions and different lisences, and what is the whole story about, then a presnentation about Ubuntu and a live Demonstration, then installation session where more than 150 Ubuntu CD was distributed.

The audience was about 200 student, and some graduates also, was a great day, it is such a pleasure to help people kiss the blue screen of death Goodbye 😀

Zend Whitepapers – PHP Leads the way

I have been browsing Zend website, and i have been going through its white papers, and it is really interesting, so i thought about sharing it with my blog visitors

Zend White Papers

An overview on PHP (PDF)

This paper gives a clear and concise overview of PHP. The paper covers many aspects of PHP, it goes through the history of PHP, the people behind PHP, the PHP market, the future of PHP, and more.

PHP Leads Web 2.0 (PDF)
This paper defines and applies Web 2.0 for today’s users. Though it is difficult to define Web 2.0 there are usually a few common denominators such as, rich web applications, SOA (service oriented architecture), and social Web elements. This paper also explains what Web 2.0 means for the Enterprise and what it means for technology today.

PHP 4 to PHP 5 Migration (PDF)
A little over three years ago, the PHP community released version 5 of its popular programming language. PHP5 has now become the version of choice for many new PHP projects. PHP4 however remains popular and is still widely used. This whitepaper is aimed at developers who are still using PHP4 and considering switching to PHP5. It is also intended to provide IT managers responsible for PHP applications additional information for their decision on whether to stick with their current version or migrate. This paper seeks to answer the questions, “What are the benefits of migrating to PHP5? And, equally importantly, what are the risks?” The information below will put you in a better position to make an informed decision between PHP4 and PHP5.

A Practical Guide to Data Caching with Zend Server
When asked about the most significant methods to speed up PHP applications, most experts would say “Cache, Cache and Cache”. There are a lot of optimizations that could be done to PHP code that would make it run faster, but the most effective method to speed up PHP execution is to simply execute less, and one of the best ways to achieve that is through caching.

Team Development with Zend Studio for Eclipse
Today’s development organizations are under ever increasing pressure to be more productive. One key factor for productivity is effective coordination across development teams. Learn how Zend Studio for Eclipse can help improve productivity and team coordination with capabilities to allow for effective use of Source Code Management, Code Refactoring, integration between development and deployment environments and more.
PHP is Not Java: Session Management White Paper (PDF)
PHP is used by developers that have a wide range of backgrounds and skill levels. When writing scalable PHP applications, it is crucial to understand the “shared nothing“ architecture of PHP. The most misunderstood component in this architecture is the session handling. PHP sessions are different from the ones used in other languages. Due to the “shared nothing“ architecture of PHP, objects cannot survive a request. Session data is therefore serialized to external storage for each request, meaning that only serializable data can be stored, not resources such as DB handles. This is a very powerful and scalable approach for session data averaging around 10-100kb, as serialized session storage can easily be spread over a cluster and serialization does not introduce a great deal of overhead.

Zend Download Server (PDF)
This paper will explain how the Apache web server works. The paper will answer key question such as: How do large file downloads affect your server’s performance? What is the difference between web page and file download serving? What do you do when your web server gets saturation? Additionally, this paper clearly defines and explains what Zend Download Server does.

Scalability and Responsiveness with Zend Platform’s Job Queue (PDF)
This paper defines Job Queue for users. The paper also details as well as explains how Job Queue is used and how it works.

Integrating PHP with System I using Web Services (PDF)
The following paper examines the ways in which PHP and Zend helps System I developers. The paper demonstrates how quick and simple it is to create a Web Service wrapper for an existing RPG program.

PHP and Oracle (PDF)
The following paper explains how to install and utilize Zend Framework to develop applications in PHP.

Free Adobe Flex Builder 3 Professional for unemployed developers

Adobe Flex Builder 3 software is currently available for free for software developers who are affected by the current economic condition and are currently unemployed.

Follow the below link to download your Free copy

https://freeriatools.adobe.com/learnflex/

Why using PHP ?

PHP is one of the most popular server side scripting languages running today. It is used for creating dynamic WebPages that interact with the user offering customized information. PHP offers many advantages; it is fast, stable, secure, easy to use and open source (free).

Rasmus Lerdorf wrote the first PHP (first called Personal Home Page) scripts as a series of Perl scripts that he used to track visitors to his webpage and to see who was viewing his resume. He eventually rewrote PHP as a scripting engine and added support for forms. PHP has been evolving since 1994 as an open source code. A community of followers and developers formed and began using and further developing PHP. Over the years the Personal Home Page acronym was dropped and it evolved into the PHP Hypertext Preprocessor.

PHP code is inserted directly into the HTML that makes up a website. When a visitor comes to the website, the code is executed. Because PHP is a server side technology, the user does not need any special browser or plug-ins to see the PHP in action.

The beauty of PHP lies in its simplicity. It is easy to understand and learn, especially for those with backgrounds in programming such as C, JavaScript and HTML. The language is similar to C and Perl so that anyone with a background in either C or Perl programming will feel comfortable using and understanding PHP. PHP also runs on just about every platform including most UNIX, Macs and Windows versions.

PHP doesn’t use a lot of the system resources so it runs fast and doesn’t tend to slow other processes down. It is typically used as an Apache module, written in C, so it loads and executes quickly. It works well with other software and can be quite fast. PHP is also stable and since it is open source, the PHP community works together to fix any bugs. The community offers technical support and continuously updates the code further expanding PHP’s capabilities.

PHP offers many levels of security to prevent malicious attacks.

Another key advantage of PHP is its connective abilities. PHP uses a modular system of extensions to interface with a variety of libraries such as graphics, XML, encryption, etc. In addition, programmers can extend PHP by writing their own extensions and compiling them into the executable or they can create their own executable and load it using PHP’s dynamic loading mechanism.

In addition to extensions, PHP has tons of server interfaces, database interfaces and other modules available. Of the server interfaces, PHP can load into Apache, Microsoft IIS, Roxen, THTTPD and AOLserver. It can also be run as a CGI module. Database interfaces are available for MySQL, Microsoft MS SQL, Informix, Oracle and plenty of others. If a database is not supported, ODBC is an option.

The main PHP source repository is loaded with modules and interfaces that users have written and contributed. There you can find modules for flash movies, PDF files, calendars and more.

A huge advantage that PHP offers is its community. Since PHP is an open source project, the PHP community is willing to share.

PHP is the best choice for developing WebPages & Intranet applications, it is compatible with any database, and web servers, and integrates well across many platforms and with various software
programs.

Below is a diagram from Oracle.com comparing between PHP & ASP.net

oracle-comparison
For the above reasons this is why i choose and recommend for you PHP as its primary language for Web Space & Intranet Applications.

Links:
www.php.net – The official PHP website
www.zend.com – The PHP Company
Framework.zend.com – Zend framework
www.zendcon.com –  Zend Conference Official website

Smart Debugging with Zend Framework

Sometimes your clients report to you Errors you have never experienced while testing your web application, or broken links, or some errors that occurs under some scenarios that you didn’t apply.

There is a smart trick i do in the ErrorController in my Zend Framework applications, i make the application send me the same error it displays to the user direct to my email, so i can know under what circumstances and conditions that error occurred.

The sweet thing is that when google bot or any search engine crawls my websites, they find some errors also, errors that i and the client didn’t reach, so i get the chance to fix it before any body see it.

I also sometimes disable viewing the error message and display “Some errors has occurred and the support has been notified, sorry for the inconvenience” and provide a link to go to Homepage for example.

Below is the code i have in my ErrorController :

    $errors = $this->_getParam('error_handler');
        switch ($errors->type) {
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:
            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:
                // 404 error -- controller or action not found                
                $this->getResponse()->setRawHeader('HTTP/1.1 404 Not Found');
                $this->view->title = 'HTTP/1.1 404 Not Found';
                break;
            default:
                // application error; display error page, but don't change                
                // status code
                $this->view->title = 'Application Error';
                break;
        }
        $body = 'HTTP/1.1 404 Not Found' . "
"; $body .= $errors->exception . "
"; $body .= "IP Address: " . $_SERVER['REMOTE_ADDR'] . "
"; $body .= "User Agent: " . $_SERVER['HTTP_USER_AGENT'] . "
"; $body .= "Lang: " . $_SERVER['HTTP_ACCEPT_LANGUAGE'] . "
"; $body .= "Referer Link: " . $_SERVER['HTTP_REFERER'] . "
"; $body .= "Requested URL" . $_SERVER['REQUEST_URI'] . "
"; $mail = new Zend_Mail(); $mail->setBodyHtml($body); $mail->setFrom('support@somesite.com', 'Website Support'); $mail->addTo("ahmed.abdelaliem@mysite.com.com", "Ahmed Abdel-ALiem"); $mail->setSubject('Sitename Error Occurred'); $mail->send(); $this->view->message = $errors->exception;