<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Marc's blog</title>
  <link rel="alternate" type="text/html" href="http://blog.panmedia.com.jm/blog/3"/>
  <link rel="self" type="application/atom+xml" href="http://blog.panmedia.com.jm/blog/3/atom/feed"/>
  <id>http://blog.panmedia.com.jm/blog/3/atom/feed</id>
  <updated>2006-11-25T04:01:15+05:00</updated>
  <entry>
    <title>Zend Framework 1.0 released</title>
    <link rel="alternate" type="text/html" href="http://blog.panmedia.com.jm/zend-framework-10-released" />
    <id>http://blog.panmedia.com.jm/zend-framework-10-released</id>
    <published>2007-07-03T07:39:06+05:00</published>
    <updated>2007-07-03T19:33:10+05:00</updated>
    <author>
      <name>Marc</name>
    </author>
    <category term="PHP" />
    <category term="Programming" />
    <category term="Technical" />
    <summary type="html"><![CDATA[<p>Zend, the primary company behind PHP, has just released version 1.0 of the web framework they have been developing for the last 20 months&#8230;   </p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Zend, the primary company behind PHP, has just released version 1.0 of the web framework they have been developing for the last 20 months.  </p>

<p>Frameworks speed up the development process by providing programmers with a flexible, easy-to-use library of components that solve the majority of the problems that they are likely to encounter. This then frees you up to focus on issues that are unique to your project.</p>

<p>The last few years have seen a explosion in the web framework scene with <a href="http://www.rubyonrails.org/">Rails</a> headlining the list for Ruby developers and <a href="http://www.djangoproject.com/">Django</a> gaining popularity with many Python programmers.  PHP on the other hand hasn&#8217;t had any clear winners.  <a href="http://www.cakephp.org/">CakePHP</a> is definitely popular and <a href="http://codeigniter.com/">Code Igniter</a> has received good reviews, but many people (myslef including) have been anticipating the arrival of the Zend Framework as <em>the</em> PHP Framwework.</p>

<p>ZF sports most of the usual features of today&#8217;s frameworks:</p>

<ul>
<li>MVC Architecture</li>
<li>Easy-to-use Database Wrapper/Mapper</li>
<li>Caching, I18N, Validation, Filtering, Feeds, Web Services</li>
<li>Built and tested by an active open source community</li>
</ul>

<p>ZF also has a couple features that differentiate it:</p>

<ul>
<li>PHP5 based</li>
<li>Includes a <a href="http://en.wikipedia.org/wiki/Lucene">Lucene</a> compatible search engine component</li>
<li>Thorough, well written documentation</li>
<li>Extensive test-suite, with high code coverage and rigorous testing requirements</li>
<li>Solid community <em>and</em> commercial backing (including contributions form IBM and Google)</li>
</ul>

<p>All this makes for a very reliable, high-quality project that both individual programmers and large enterprises will feel comfortable working with.</p>

<p>Nevertheless there are a few missing pieces that Zend needs to address in the not so distant future. Some of these are outlined on their <a href="http://framework.zend.com/whyzf/future/">roadmap page</a>:</p>

<ul>
<li>Better Forms and AJAX support</li>
<li>Digital Identity Management (OpenID and CardSpace)</li>
<li>Developer Tools Command-line and IDE</li>
</ul>

<p>A few things that they don&#8217;t mention on the roadmap page but have discussed extensively in the forums are:</p>

<ul>
<li>Short, clear tutorial style examples. The documentation is thorough, but it sure ain&#8217;t fun to read. They need more examples like <a href="http://www.djangoproject.com/documentation/overview/">this</a> to get people hooked.</li>
<li>Example code and best practices</li>
<li>Built in support for handling more advanced templating: two-step views, partitals, inheritance, etc</li>
</ul>

<p>All in all I am happy to see that 1.0 has finally arrived.  I am going to try to carve out some time to re-implement a small PHP app I did in the past using ZF. Should be fun. </p>
    ]]></content>
  </entry>
  <entry>
    <title>Zend Core 2.0 Released.  Zend Accelerator silently removed.</title>
    <link rel="alternate" type="text/html" href="http://blog.panmedia.com.jm/zend-core-20-released-zend-accelerator-silently-re" />
    <id>http://blog.panmedia.com.jm/zend-core-20-released-zend-accelerator-silently-re</id>
    <published>2007-03-10T03:59:12+05:00</published>
    <updated>2007-04-25T22:26:29+05:00</updated>
    <author>
      <name>Marc</name>
    </author>
    <summary type="html"><![CDATA[<p>On Tuesday Zend released the final version of its newest PHP based offering Zend Core 2.0.  Zend Core is a fast an easy way to install a stable combination of PHP, MySQL and Apache on Windows, Linux or OS X.  See my <a href="http://blog.panmedia.com.jm/zend-core-20-future-php-part-ii">previous post</a> for more details. Overall this release is good news, however there is one big change in the final package that nobody seems to be talking about.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>On Tuesday Zend released the final version of Zend Core 2.0.  Zend Core is a fast and easy way to install a stable combination of PHP, MySQL and Apache on Windows, Linux or OS X.  See my <a href="http://blog.panmedia.com.jm/zend-core-20-future-php-part-ii">previous post</a> for more details. Overall this release is good news, however there is one big change in the final package that nobody seems to be talking about.</p>

<p>Zend has silently <strong>removed</strong> one of the key components that it had offered in beta versions of ther product,  the Zend Accelerator, an opcode cache which can boost performance by up to 300%. From the looks of it, this was a hasty, last-minute decision.</p>

<p>During the beta the <a href="http://www.zend.com/products/zend_core">overview page</a> used this professionally designed diagram to illustrate then Zend Core architecture:</p>

<p><span class="inline left"><img src="http://blog.panmedia.com.jm/sites/blog.panmedia.com.jm/files/images/zend_core_graphic.gif" alt="Original Zend Core Diagram" title="Original Zend Core Diagram" class="image preview" height="306" width="380"><span class="caption" style="width: 378px; margin-bottom:15px;"><strong>Original Zend Core Diagram</strong></span></span></p>

<p>However now the website shows this simple diagram that looks like it was done by an intern using MS Paint. Note the absence of the Accelerator block.</p>

<p><span class="inline left"><img src="http://blog.panmedia.com.jm/sites/blog.panmedia.com.jm/files/images/graphic_landing_page.jpg" alt="New Zend Core Diagram" title="New Zend Core Diagram" class="image preview" height="204" width="380"><span class="caption" style="width: 378px; margin-bottom:15px;"><strong>New Zend Core Diagram</strong></span></span>
One can only guess what kind of internal turmoil could have caused this last minute policy shift. </p>

<p>The skeptics amongst us might wonder if it had anything to do with the newly appointed CEO who <a href="http://www.zend.com/company/zend_news/press_releases/2007/01/harold_goldberg_joins_zend_as_ceo">joined the company</a> after the beta release.  There is a obvious (albeit short-sighted) concern that releasing the accelerator component would cannibalize a part of their <a href="http://www.zend.com/products/zend_platform">Zend Platform</a> market.</p>

<p>Others might wonder if it has anything to do with the recent <a href="http://pecl.php.net/package-changelog.php?package=APC&amp;release=3.0.13">barrage of fixes</a> that went into <a href="http://www.php.net/apc">APC</a> the popular open source opcode cache that is slated for inclusion in PHP 6. Has Zend finally woken up and realized that they should get behind APC right away? If so, why isn&#8217;t it included along with the other certified extensions.</p>

<p>Time may tell what really happened; <del>for now I am going with a Zend Core + APC combo.  APC&#8217;s recent inclusion in the Windows installer for PHP 5.2.1 alleviates some of my <a href="http://www.nabble.com/APC-not-included-in-windows-installer-of-%22Collection-of-PECL-modules%22-on-php.net-tf2865944.html">previous concerns</a> about its stability on windows.</del></p>

<p><strong>Update:</strong> It looks like the Zend Optimizer (used by Zend Core to run encrypted/obfuscated PHP files) has some inherent conflicts with APC.  This makes the removal of the Zend Accelerator from Zend Core 2.0 even more unacceptable&#8230;now it seems the only options are to not use an opcode cache or buy Zend Platform&#8230;bad move Zend. </p>

<p style="line-height:2px;">&nbsp;</p>

<p><a style="border-bottom:none" href="http://digg.com/programming/Zend_Core_2_0_released_Preformance_enhancing_feature_silently_removed">
<img src="http://digg.com/img/badges/100x20-digg-button.png" width="100" height="20" alt="Digg!" />
</a></p>
    ]]></content>
  </entry>
  <entry>
    <title>Firebug: The kind of bug you learn to love</title>
    <link rel="alternate" type="text/html" href="http://blog.panmedia.com.jm/firebug-kind-bug-you-learn-love" />
    <id>http://blog.panmedia.com.jm/firebug-kind-bug-you-learn-love</id>
    <published>2007-01-25T22:54:09+05:00</published>
    <updated>2007-01-26T20:09:37+05:00</updated>
    <author>
      <name>Marc</name>
    </author>
    <category term="CSS" />
    <category term="Javascript" />
    <category term="Programming" />
    <category term="Technical" />
    <summary type="html"><![CDATA[<p>Firebug 1.0 <a href="http://www.getfirebug.com/blog/2007/01/24/one-dot-oh/">was released today</a>. Firebug takes the process of debugging HTML/CSS/Javascript to a whole new level.  I could try my best to extol its virtues, but their website would still do a better job.</p>

<p>If you are web developer and you have never heard of Firebug, you need to stop what you are doing and <a href="http://www.getfirebug.com/">get it now</a>.  Run, don&#8217;t walk. </p>

<p>An interesting footnote to this new announcement is that Firebug&#8217;s creator almost decided to <a href="http://www.joehewitt.com/blog/introducing_fir.php">start charging for the product</a> in order to bring on a full time developer.  In the end he decided to <a href="http://www.getfirebug.com/blog/2006/12/04/firebug-10-news/">keep it open source</a> and continue to fund development from donations.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Firebug 1.0 <a href="http://www.getfirebug.com/blog/2007/01/24/one-dot-oh/">was released today</a>. Firebug takes the process of debugging HTML/CSS/Javascript to a whole new level.  I could try my best to extol its virtues, but their website would still do a better job.</p>

<p>If you are web developer and you have never heard of Firebug, you need to stop what you are doing and <a href="http://www.getfirebug.com/">get it now</a>.  Run, don&#8217;t walk. </p>

<p>An interesting footnote to this new announcement is that Firebug&#8217;s creator almost decided to <a href="http://www.joehewitt.com/blog/introducing_fir.php">start charging for the product</a> in order to bring on a full time developer.  In the end he decided to <a href="http://www.getfirebug.com/blog/2006/12/04/firebug-10-news/">keep it open source</a> and continue to fund development from donations.</p>

<p>I think there is a lot of room for innovation in &#8220;business models&#8221; for individually developed open source projects.  For Firebug specifically I think any of the following could have been explored:</p>

<ul>
<li><p>A donations drive before the 1.0 release.  Preview the features, set a target amount and provide a graph to show how close the community is to achieving the goal.  If you don&#8217;t hit the mark before the release date, only provide the 1.0 code to the people have donated.  Once you reach the target, release it to the general public.  This could be repeated for all major releases.</p></li>
<li><p>Corporate Sponsorship.  A product like Firebug could probably garner sponsorship from the likes of Google, Yahoo!, Amazon or The Mozilla Corporation.</p></li>
<li><p>On-demand merchandise. With the advent of stores like <a href="http://www.cafepress.com/">Cafepress</a> and <a href="http://www.lulu.com/">Lulu.com</a> it is fairly easy for anyone to sell branded t-shirts, mugs, or books (printed documentation) without any start-up costs. </p></li>
</ul>

<p>It will be interesting to see how these open source &#8220;business models&#8221; mature over time.  They will make it easier a talented individual developer from Jamaica to develop an interesting product, have it used by thousands of people worldwide and get paid all at the same time.</p>

<p>Panmedia has made a donation to support continued development. If you use and enjoy this product you should consider <a href="http://www.getfirebug.com/contribute.html">donating</a> too, even if it is just $5 or $10.  Firebug will probably save you more money in a single day than the dollar figure of your donation.</p>

<p><strong>P.S.</strong> For debugging in IE you should check out the IE <a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e59c3964-672d-4511-bb3e-2d5e1db91038&amp;displaylang=en">Web Developer Toolbar</a> it is not up to par with Firebug&#8217;s features, but it is still very useful.  Hopefully Microsoft will feel inspired to make it even better by the time it reaches 1.0.</p>
    ]]></content>
  </entry>
  <entry>
    <title>Zend Core 2.0 (The Future of PHP part II)</title>
    <link rel="alternate" type="text/html" href="http://blog.panmedia.com.jm/zend-core-20-future-php-part-ii" />
    <id>http://blog.panmedia.com.jm/zend-core-20-future-php-part-ii</id>
    <published>2007-01-20T04:05:52+05:00</published>
    <updated>2007-03-11T07:04:36+05:00</updated>
    <author>
      <name>Marc</name>
    </author>
    <category term="PHP" />
    <category term="Predictions" />
    <category term="Programming" />
    <category term="Technical" />
    <summary type="html"><![CDATA[<p>On Tuesday Zend launched a beta of <a href="http://www.zend.com/products/zend_core">Zend Core 2.0</a>, a brand new and extremely important addition to the Zend Core line up.  Unlike its predecessors, Zend Core 2.0 is not designed for a specific database or hardware platform, it is a stable, certified, and (optionally) supported PHP Application Server bundle provided by Zend.  It looks like they won&#8217;t be releasing a Zend Core for Windows or Zend Core for MySQL but instead will deliver a single, cross-platform product that includes the improvements from the collaboration with Microsoft.  In addition to that, they are including a whole lot more&#8230;</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>On Tuesday Zend launched a beta of <a href="http://www.zend.com/products/zend_core">Zend Core 2.0</a>, a brand new and extremely important addition to the Zend Core line up.  Unlike its predecessors, Zend Core 2.0 is not designed for a specific database or hardware platform, it is a stable, certified, and (optionally) supported PHP Application Server bundle provided by Zend.  It looks like they won&#8217;t be releasing a Zend Core for Windows or Zend Core for MySQL but instead will deliver a single, cross-platform product that includes the improvements from the collaboration with Microsoft.  In addition to that, they are including a whole lot more&#8230;</p>

<p><strong>Things you were already getting:</strong></p>

<ul>
<li><p>Certified Release (open source and proprietary components have been QA&#8217;d together).</p></li>
<li><p>User-friendly Installer.</p></li>
<li><p>GUI Console (includes interfaces for monitoring, configuring, benchmarking the server).</p></li>
<li><p>Bundled proprietary database drivers (IBM and Oracle).</p></li>
<li><p>One free web based support ticket.</p></li>
<li><p>The option for standard support (web based tickets, hotfixes and knowledgebase) or premium phone support.</p></li>
</ul>

<p><strong>New things:</strong></p>

<ul>
<li><p>Bundled MySQL 5.0 Server and Drivers.<br />
It is bundled in relatively loose way; the server is automatically downloaded by the Zend installer, it then launches MySQL&#8217;s standard installer (of course this is an optional component).</p></li>
<li><p>Bundled Apache 2.2<br />
It would be perfect if they offered basic support for Apache with their Zend Network package - updates, trouble shooting, simple web based config. This would greatly simplyfy the process of keeping your server secure and up to date. </p></li>
<li><p>Improved performance and reliability on windows.  200%-300% boost plus support for IIS and Vista.</p></li>
<li><p><a href="http://www.phpmyadmin.net/home_page/index.php">PHPMyAdmin</a>.<br />
Becomes part of the Zend Admin GUI.</p></li>
<li><p>Zend Enabler (FastCGI).<br />
A proprietary FastCGI module for Apache on windows. <strong>This one deserves special mention.</strong>  I have spent several days trying to setup a stable, production quality PHP installation on Windows for a client and it is a <strong>very</strong> difficult task.  Running PHP under a threaded web server (IIS using ISAPI or Apache2 using the PHP module) is strongly <a href="http://www.php.net/manual/en/install.windows.apache2.php">discouraged</a> by the PHP group.  FastCGI is recommended instead.  <a href="http://fastcgi.coremail.cn/">mod_fcgid</a> provides FastCGI support for Apache2 and there is even a windows <a href="http://www.apachelounge.com/download/">binary</a> available.  However I have had questionable results using this module with PHP 5.2 (I was able to reproducibly crash the server) and the author offers no support or certification of testing. I had high hopes of Apache releasing their <a href="http://svn.apache.org/repos/asf/httpd/httpd/branches/fcgi-proxy-dev/modules/proxy/mod_proxy_fcgi.c">own FastCGI module</a> (which would result in a greater amount of QA on windows) but that still hasn&#8217;t happened yet. Microsoft is developing their own <a href="http://www.iis.net/default.aspx?tabid=1000051">FastCGI module</a> for IIS in collaboration with Zend.</p></li>
<li><p><del>Zend Accelerator</del> <strong><a href="http://blog.panmedia.com.jm/zend-core-20-released-zend-accelerator-silently-re">Removed from final release!</a></strong><br />
A PHP bytecode caching and acceleration component (200%-300% performance boost).  A opcode cache is way overdue for PHP; I was glad when I heard that <a href="http://pecl.php.net/package/APC">APC</a> would be included by default in <a href="http://www.php.net/~derick/meeting-notes.html#add-an-opcode-cache-to-the-distribution-apc">PHP 6</a>.  I think that Zend should have open-sourced their cache from long ago for this very reason.  They risk having their implementation sidelined by an good open source one.  Well PHP6 might not be out for a while so in the meantime this is a very welcomed addition.  I was also looking for an opcode cache to use with PHP on windows. There is an auto-compiled version of APC for windows available but I have seen <a href="http://www.nabble.com/does-APC-3-work-with-fastcgi--tf142629.html#a396425">some</a> <a href="http://pecl.php.net/bugs/bug.php?id=7141">issues</a> and I wasn&#8217;t able to get any response from the <a href="http://www.nabble.com/APC-not-included-in-windows-installer-of-%22Collection-of-PECL-modules%22-on-php.net-tf2865944.html">PECL mailing list</a> about its production readiness .</p></li>
<li><p>Zend Optimizer<br />
Wider distribution of <a href="http://www.zend.com/products/zend_optimizer">Zend Optimizer</a> will provide more opportunities for PHP developers to sell compiled PHP applications without source code using the licensing scheme of their choosing.  It will also provide Zend the opportunity to sell more copies of <a href="http://www.zend.com/products/zend_guard">Zend Guard</a>. </p></li>
<li><p>Zend Debugger<br />
This server-side debugging component will complement the new Eclipse based IDE/Debugger.  It can also be used by Zend&#8217;s proprietary <a href="http://www.zend.com/products/zend_studio">Studio product</a>.  I am curious how they plan to modify their studio offering over time to target it at a more enterprise-ish crowd.</p></li>
<li><p>Zend Framework<br />
Widespread distribution of the Zend Framework is good news for everybody.  Quality components and patterns that will influence the creation of quality code.  This also makes it easier for developers to write application that depend on the framework.</p></li>
</ul>

<p><strong>Things you have to pay for (Zend Network/Support)</strong></p>

<ul>
<li><p>Incremental hot-fix updates (you don&#8217;t have to do a complete re-install)</p></li>
<li><p>Web based support tickets</p></li>
<li><p>Access to knowledgebase and bug-tracking system</p></li>
</ul>

<p><strong>Things you will (probably) get in the future</strong></p>

<ul>
<li><p>The new Eclipse based <a href="http://www.eclipse.org/php/">IDE/Debugger</a> will probably be bundled.</p></li>
<li><p>The enhanced MySQL driver</p></li>
</ul>

<h4>Baseless conjecture that probably won&#8217;t happen</h4>

<p>It would be interesting to see Zend Core supporting multiple languages using the virtual machine approach that Microsoft&#8217;s <a href="http://en.wikipedia.org/wiki/Common_Language_Runtime">CLR</a>
 and Sun&#8217;s JVM each use (see <a href="http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython">IronPython</a>, <a href="http://jruby.codehaus.org/">JRuby</a>, <a href="http://www.jython.org/Project/index.html">Jython</a> and <a href="http://en.wikipedia.org/wiki/Groovy">Groovy</a>).  It would be really interesting if they used <a href="http://en.wikipedia.org/wiki/Parrot_virtual_machine">Parrot</a> for the VM (of course Parrot/Perl 6 would have finally to be released for that to happen).</p>

<h4>Big picture</h4>

<p>With the upcoming releases of Zend Core 2.0 and <a href="http://www.zend.com/products/zend_platform/zend_platform_3_0_beta">Zend Platform 3.0</a>, Zend has provided a smooth path for choosing the package that fits you best and easily transitioning between them.  Functionality like the Accelerator and the FastCGI component have moved downstream into the free Zend Core offering, while Platform 3.0 has taken on more enterprise features like Active Monitoring, Java integration, High Availability, Job Queues and SNMP Traps. We now have the following options.</p>

<ol>
<li><p>PHP from php.net - targeted at Unix/Linux/BSD distributions and people who like/want/need to roll-their-own (e.g. mass hosting companies).</p></li>
<li><p>Zend Core - targeted at developers, production windows users, and other production users who have their own servers.</p></li>
<li><p>Zend Core + Zend Network - targeted at small and medium sized businesses that want updates and support.</p></li>
<li><p>Zend Platform - targeted at enterprises and business whose web presence is mission-critical.</p></li>
</ol>

<p>It will be very interesting to see how Zend promotes and fine tunes each of these products over the next few years to respond to the demand of the market.  So far their basic strategy looks pretty solid to me. </p>

<p>Ok I&#8217;ve babbled on for long enough. I really need to learn to write shorter blog posts.</p>

<h4>Postscript</h4>

<p>For those who want to try it out, here are a few installation tips </p>

<p>The installer will download and launch the MySQL installer but it doesn&#8217;t install it anywhere special or do anything interesting, so if you already have a MySQL database running, don&#8217;t bother selecting that option.</p>

<p>If you choose to install the bundled Apache 2.2, it will be installed in the Zend folder and configured to run on the port of your choosing, <del>however if you already had another apache 2 installation (albeit in a different directory) and it is installed as a service, the Zend installer (at least the beta version) uninstalls the service entry for your existing apache installation.  You can remedy this by going to you original apache install location and re-installing the service with a specific name:</del>. This has been fixed in the final version.</p>

<pre><code>cd C:\Program Files\Apache Software Foundation\Apache2.2\bin

httpd.exe -k install -n "Apache2Original"
</code></pre>

<p>Apparently certain desktop firewalls and antivirus programs conflict with Apache2 on windows causing it to eat up all your CPU, continuously fill your error log with messages and just generally not work.  This can be remedied by adding &#8220;<a href="http://httpd.apache.org/docs/2.0/mod/mpm_winnt.html#win32disableacceptex">Win32DisableAcceptEx</a>&#8221; to your httpd.conf file.  I had run into this problem before with my <a href="http://antivirus.comodo.com/">antivirus software</a> so I knew exactly how to fix it.</p>
    ]]></content>
  </entry>
  <entry>
    <title>The Future of PHP</title>
    <link rel="alternate" type="text/html" href="http://blog.panmedia.com.jm/future-php" />
    <id>http://blog.panmedia.com.jm/future-php</id>
    <published>2007-01-03T02:46:08+05:00</published>
    <updated>2007-01-04T00:58:28+05:00</updated>
    <author>
      <name>Marc</name>
    </author>
    <category term="PHP" />
    <category term="Predictions" />
    <category term="Programming" />
    <category term="Technical" />
    <summary type="html"><![CDATA[<p>Last Friday there was a rather spirited discussion at the office between Kaiton (a Ruby aficionado and ex-Panmedia employee currently at Microsoft), Nesta (a python aficionado who is forced to use PHP) and myself, (an un-biased PHP user who is forced to defend it ;-).  The topic of course was PHP, its woes, its past, its present and its future.  </p>

<p>According to Kaiton, PHP will be marginalised in 2008 by more literate programming languages like <a href="http://www.ruby-lang.org/en/">Ruby</a>, <a href="http://www.python.org/">Python</a> and even <a href="http://www.erlang.org/">Erlang</a>.  His view is that as the web becomes more important to business, backend programmers will start to get involved in the front end and web programming will be dominated by more experienced programmers who care more about the language they code with.  According to Nesta, <a href="http://drupal.org/">Drupal</a> is the only good thing that ever came out of PHP.  I think that 2007 will be the year of PHP.</p>
    ]]></summary>
    <content type="html"><![CDATA[<p>Last Friday there was a rather spirited discussion at the office between Kaiton (a Ruby aficionado and ex-Panmedia employee currently at Microsoft), Nesta (a python aficionado who is forced to use PHP) and myself, (an un-biased PHP user who is forced to defend it ;-).  The topic of course was PHP, its woes, its past, its present and its future.  </p>

<p>According to Kaiton, PHP will be marginalised in 2008 by more literate programming languages like <a href="http://www.ruby-lang.org/en/">Ruby</a>, <a href="http://www.python.org/">Python</a> and even <a href="http://www.erlang.org/">Erlang</a>.  His view is that as the web becomes more important to business, backend programmers will start to get involved in the front end and web programming will be dominated by more experienced programmers who care more about the language they code with.  According to Nesta, <a href="http://drupal.org/">Drupal</a> is the only good thing that ever came out of PHP.  I think that 2007 will be the year of PHP.</p>

<p>By the end of the <del>argument</del> discussion, things were kinda starting to go around in circles so I decided to try and articulate my ideas in written format so that they could be dated, critiqued and openly ridiculed, and so that a year or two from now I can come back read the crazy things I was thinking way back in 2007.  It will also serve as an official record in case Kaiton wants to put his money where his mouth is ;-)</p>

<p>Before I present my argument, let me get a few things straight.  </p>

<p>There are definitely <strong>some dislikeable things about PHP</strong>. The language design (or lack thereof) is far from perfect. PHP&#8217;s roots and a laissez-faire approach to adding new features early on have scarred the language with inconsistent naming conventions and function behaviour.  A late start in the object oriented game meant that it took them a little while to get that feature right.  Its popularity has been its Achilles heel and prevented the developers from making radical sweeping changes to normalize the language.</p>

<p>On the flip side there are <strong>a few unfair assertions that people tend to make against PHP</strong>. I often hear people say <em>“you can&#8217;t build large apps in PHP, it just gets messy!”</em>. While there is a lot of bad PHP code out there, that doesn&#8217;t mean you can&#8217;t write clean code.  The PHP language does not enforce a lot rules to prevent you from coding sloppily; whether or not a language should police coders is a separate matter of debate.  The fact remains however that PHP provides you with everything you need to code your applications according to tried and true <a href="http://www.amazon.com/PHP-5-Objects-Patterns-Practice/dp/1590593804/">Object Oriented Design Patterns</a>.  Whether or not you choose to do so is up to you.</p>

<p>Just so it is clear, I am not saying that PHP <strong>deserves</strong> to prosper, I am not saying that I <strong>personally want it</strong> to prosper, I am simply saying that <strong>it will prosper</strong>. Here is why:</p>

<p><strong>PHP is popular.  This has a couple ramifications.</strong></p>

<ul>
<li><p>PHP 4 is available by default in just about any web-hosting plan you come across. And PHP 5 availability is rising steadily.</p></li>
<li><p>It has been widely and heavily tested against a multitude of different environments and configurations (Hardware, OS, Database, 3rd party software, etc).</p></li>
<li><p>You are much more likely to have somebody in-house who knows at lease some PHP than <strong>any</strong> Ruby or Python, and it is also much easier to hire a PHP developer.</p></li>
</ul>

<p><strong>PHP 5 is &#8220;good enough&#8221;.</strong></p>

<p>Regardless of what you want to say about PHP&#8217;s language design (or complete lack thereof) as it currently stands at version 5.2:</p>

<ul>
<li><p>It has sufficient object oriented features for coding according to enterprise patterns.</p></li>
<li><p>It has deprecated the magic functions (register globals, magic quotes, etc) that have been the source of many security issues in the past an scheduled them for complete removal in PHP 6.</p></li>
<li><p>The Internet’s <a href="http://www.yahoo.com/">most trafficked site</a> is built using PHP.  They are heavily invested its success and are one of the major driving forces behind the PHP 6&#8217;s upcoming <a href="http://devzone.zend.com/node/view/id/874">Unicode support</a>. They have a presentation online explaining <a href="http://www.radwin.org/michael/blog/2005/10/php_at_yahoo_presentation_.html">their rationale</a> for choosing PHP.</p></li>
</ul>

<p>This meets my definition of good enough.  Far from perfect, not necessarily the best, but good enough for web work of all sizes. </p>

<p><strong>The PHP Collaboration Project makes PHP better.</strong></p>

<ul>
<li><p><a href="http://framework.zend.com/">The Zend Framework</a> leads by example to help solve the sloppy PHP coder epidemic and give developers a solid basis for rapid application development.</p></li>
<li><p><a href="http://devzone.zend.com/">The Zend Developer Zone</a> plays in important role by engaging the community and providing example code. </p></li>
<li><p>However, to me, the most important part of the Collaboration project is the <a href="http://www.eclipse.org/php/">new Eclipse based IDE/Debugger</a>. A well designed, fully integrated free and open source graphical coding/debugging solution for PHP will a major step forward for web application development. One year from now many of use will scratch our heads in amazement at the primitive methods we used to employ for debugging complex web apps.  The difference will be as huge as the jump from debugging JavaScript using alert messages to using Firebug 1.0 (more on that in a later blog post).</p></li>
</ul>

<p><strong>Zend knows how to compete</strong></p>

<p>From a developer point of view the entire <a href="http://www.zend.com/php_collaboration_project">PHP Collaboration Project</a> is an attempt to compete with ASP.NET.  The combination of a Developer Zone, an IDE and a Framework are straight out of the Microsoft playbook. They are even working <strong>with</strong> Microsoft to compete in the arena where Microsoft typically dominates&#8230; distribution to the windows desktop.  <a href="http://www.zend.com/products/zend_core/windows_preview">Zend Core for Windows</a> will be a simple download and install and I wouldn&#8217;t put it past them to bundle the framework in as well.</p>

<p>On the Framework level the Zend Framework competes with <a href="http://www.rubyonrails.org/">Ruby on Rails</a>, <a href="http://www.djangoproject.com/">Django</a> and <a href="http://www.asp.net/">ASP.Net</a>.  It covers all the typical bases MVC, ORM, Caching, JSON, etc.</p>

<p>On the language level PHP 5&#8217;s object-oriented improvements and PHP 6&#8217;s upcoming Unicode support give the language some more &#8220;enterprise&#8221; features, but I don&#8217;t think Zend is actually trying to compete with Java.  Zend and Sun&#8217;s collaborated on <a href="http://jcp.org/en/jsr/detail?id=223">JSR-223</a> (Scripting for the Java Platform) which will allow scripting languages like PHP to access Java objects in the recently released Java 6 JRE. When you combine this with the Java language support in Zend Studio 5.5 it indicates to me that Zend wants to co-exist rather than compete with Java.</p>

<p><strong>Zend is making inroads into the corporate world</strong></p>

<p>Separate and apart from working with IBM, Intel, EBay and Amazon on the collaboration project, Zend has established partnerships with the major proprietary Database vendors and created a special set of PHP distributions just for them called Zend Core; this now includes <a href="http://www.zend.com/products/zend_core/zend_core_for_oracle">Zend Core for Oracle</a>, and <a href="http://www.zend.com/products/zend_core/zend_core_for_ibm">Zend Core for IBM</a> .  Not only do these types of partnerships make companies feel more comfortable using PHP with the proprietary databases they have built their business on but they also offer a number of other benefits:</p>

<ul>
<li><p>Improved drivers. By working directly with the database vendors, Zend has already made numerous improvements to the PHP extensions for Oracle and DB2.</p></li>
<li><p>Simplified distribution and setup for those who need to use proprietary drivers (since they aren&#8217;t distributed with the standard php.net download).</p></li>
<li><p>GUI based management. Each Zend Core distribution comes with a web based interface for viewing the server status and managing the PHP configuration.  Zend Core also comes with an updater that allows you to easily apply and rollback PHP updates.</p></li>
<li><p>Zend Core provides a nice smooth <a href="http://www.zend.com/products/zend_core/support">on ramp to support</a>.  You can download the basic system for free and then choose your level of support later on.  Support for PHP may not seem necessary to most developers but it is nice to have the option in case the company you are working for wants it.</p></li>
</ul>

<p>Not to be left behind, rumour has it that early this year we will see a <a href="http://www.planetmysql.org/entries/4543">Zend Core for MySQL</a> as well as a brand <a href="http://www.planetmysql.org/kaj/?p=69">new MySQL driver</a> developed specifically for PHP that provides added performance and reliability.  When you consider this along with MySQL’s upcoming <a href="http://mike.kruckenberg.com/archives/2006/04/jim_starkey_int.html">Falcon</a> <a href="http://dev.mysql.com/doc/refman/5.1/en/se-falcon.html">storage engine</a> and their extremely useful <a href="http://www.mysql.com/products/tools/">GUI tools</a>, 2007 may be the year of MySQL as well.</p>

<p><strong>The train has left the station</strong></p>

<p>I have a python book here on my desk that is number 2 or 3 in my reading queue right now, I would really like to learn Ruby (but don&#8217;t see it happening anytime soon).  I have no doubt that I will find both these languages more pleasant to code with than PHP, but my personal tastes have little to do with what I think will happen in 2007/2008.  The PHP train is a rollin&#8217; and my learning or loving another language ain&#8217;t gonna stop it.</p>

<p>What do you think? Will 2007/2008 see PHP rise or fall?</p>
    ]]></content>
  </entry>
  <entry>
    <title>The Electronic Transaction Act and e-commerce in Jamaica</title>
    <link rel="alternate" type="text/html" href="http://blog.panmedia.com.jm/electronic-transaction-act-and-e-commerce-jamaica" />
    <id>http://blog.panmedia.com.jm/electronic-transaction-act-and-e-commerce-jamaica</id>
    <published>2006-11-24T03:19:11+05:00</published>
    <updated>2006-11-25T04:01:15+05:00</updated>
    <author>
      <name>Marc</name>
    </author>
    <category term="E-commerce" />
    <category term="Jamaica" />
    <category term="Law" />
    <summary type="html"><![CDATA[<p>The long overdue electronic transactions bill that passed last week has sparked new interest in the online opportunities available to local businesses. Though short on solutions for the real problems hindering e-commerce in Jamaica, the bill at least gives legal recognition to electronic commerce here and raises awareness with the general public.</p>

<p>This legislation has been &#8220;coming soon&#8221; since <a href="http://www.jamaica-gleaner.com/gleaner/20010513/business/business3.html">as far back as 2001</a>.  According to <a href="http://www.mct.gov.jm/OVERVIEW%20OF%20THE%20E-TRANSACTIONS%20BILL.pdf">this overview</a>, the majority of the act deals with providing legal recognition for the electronic equivalents of many of the paper based processes that we deal with today (e.g. ).  It goes into great detail about personal electronic signatures and transmitting documents electronically. </p>
    ]]></summary>
    <content type="html"><![CDATA[<p>The long overdue electronic transactions bill that passed last week has sparked new interest in the online opportunities available to local businesses. Though short on solutions for the real problems hindering e-commerce in Jamaica, the bill at least gives legal recognition to electronic commerce here and raises awareness with the general public.</p>

<p>This legislation has been &#8220;coming soon&#8221; since <a href="http://www.jamaica-gleaner.com/gleaner/20010513/business/business3.html">as far back as 2001</a>.  According to <a href="http://www.mct.gov.jm/OVERVIEW%20OF%20THE%20E-TRANSACTIONS%20BILL.pdf">this overview</a>, the majority of the act deals with providing legal recognition for the electronic equivalents of many of the paper based processes that we deal with today (e.g. ).  It goes into great detail about personal electronic signatures and transmitting documents electronically.</p>

<p>While those issues are certainly relevant to the ministry&#8217;s vision of e-government, they have little impact on what most people think of when they think about internet transactions: buying things online.  You have to skip all the way down to clause 26 of 39 before you find anything related to e-commerce.</p>

<p>The passing of the bill is definitely a step in the right direction, and while most Jamaicans may not understand the actual implications of the entire act I am sure that many people who hear the news reports will feel a little more comfortable with the idea of conducting business online. When this is combined with the revolutions happening in the wireless and broadband internet markets, it seems like a pretty good indicator that we making progress towards becoming networked society, however there are still a few hurdles that need to be overcome before we can get there.  </p>

<p>For one, more people need computers.  I thought Cable and Wireless was on to something when the launched <a href="http://home.cwjamaica.com/content/products_services/data_ip/internet_services/max/">Max</a> but that doesn&#8217;t seem to have taken off.  If I had to make a guess I would blame this failure on the improper marketing/distribution of the product and C&amp;W&#8217;s over-inflated broadband prices.  Maybe <a href="http://www.flowjamaica.com/">Flow</a> can do better, they certainly have done better in terms of speeds and pricing.  The fact that they also provide cable service could lead the way to having a computer in every home that has a cable box.  If the government&#8217;s new e-learning project decides to equip children with $100 laptops from the <a href="http://laptop.org/">One Laptop Per Child project</a> that would also significantly boost the number of households with internet access.  It seems like the <a href="http://www.iadb.org/NEWS/articledetail.cfm?artid=3407&amp;language=En">IADB formalized and agreement with the OLPC project</a> recently, so who knows.</p>

<p>The second thing that needs to be addressed is the credit card issue, or better yet, the lack thereof.  The vast majority of Jamaicans simply do not have credit cards.  Don&#8217;t get me wrong, I am not advocating a system where people spend beyond their means and become laden with debt, especially with the interest rates on credit cards in Ja.  However the fact of the matter is that in today&#8217;s world, the credit card is easiest way to purchase goods online.  There are a number of other virtual payment systems out there like PayPal, but even those tend to be backed by credit cards and bank accounts.  Until a solution is found for the virtual payment problem in the Jamaican context, e-commerce levels will remain low.</p>
    ]]></content>
  </entry>
</feed>
