<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>dotvoid.com &#187; zend framework</title>
	<atom:link href="http://www.dotvoid.com/tag/zend-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.dotvoid.com</link>
	<description>Experiments and thoughts in PHP and javascript</description>
	<lastBuildDate>Tue, 11 Oct 2011 12:49:15 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Zend Framework 1.8 Web Application Development review</title>
		<link>http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/</link>
		<comments>http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/#comments</comments>
		<pubDate>Mon, 28 Dec 2009 23:33:32 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.dotvoid.com/?p=425</guid>
		<description><![CDATA[Packt Publishing sent me a copy of Keith Pope&#8217;s Zend Framework 1.8 Web Application Development a while ago. In return they asked me to write what I thought about it. I have had it lying on my desk for a while but haven&#8217;t had time to read it more carefully. Nevertheless I have actually used [...]]]></description>
			<content:encoded><![CDATA[<p>Packt Publishing sent me a copy of Keith Pope&#8217;s <a href="http://www.packtpub.com/zend-framework-1-8-web-application-development/book">Zend Framework 1.8 Web Application Development</a> a while ago. In return they asked me to write what I thought about it. I have had it lying on my desk for a while but haven&#8217;t had time to read it more carefully. Nevertheless I have actually used it every now and then. Now, after reading a bit more the last few days, I can finally give my opinion on the book.</p>
<h2>Programming books in general</h2>
<p>I&#8217;d better start off with telling you that I haven&#8217;t read many &#8220;pure&#8221; programming books since the mid 1990&#8217;s when I was studying at the university. I tend to stick to books on concepts and methodologies and then read online tutorials and articles when it comes to programming. Programming books are rarely worth the money as they are either reference books which gets out of date quickly (I&#8217;ve thrown away quite a few Java books over the years&#8230;) or learning by example books which you painstakingly slowly must follow line by line to build something thousands open source projects alrady built.</p>
<p>My thought was that this book was probably both outdated (as ZF 1.9 has been around for awhile) and probably boring in that building a web shop isn&#8217;t that interesting. I was wrong in all ends.</p>
<h2>The book</h2>
<p>I especially like the way Pope introduce the MVC concept in Zend Framework. In the first chapter you get a good overview on configuration, the bootstrap process, controllers, action helpers, views and error handling. Chapter two goes deeper into the specifics of the request and routing. He also briefly delves into more advanced topics as plugins and component customization. The reader quickly gets a very good grasp on how to work with MVC applications in Zend Framework.</p>
<p>Another thing I like is how Pope reasons about various strategies; both pros and cons as well as how and how not to do things. Good examples are chapter four where Pope gives a good explanation on the Fat Model Skinny Controller strategy and chapter five with it&#8217;s best practices regarding accessing models from views with the help of view helpers. Reasoning and explanations like this is good, especially for unexperienced developers. This &#8211; and giving optimization and testing their own chapters &#8211; makes the book better. As Pope is thowing in both Zend Tool as well as Ant into the book makes it even better still.</p>
<h2>Summary</h2>
<p>To sum up my opinions the structure of the book makes it easy to read at leisure as well as using it as reference later. The MVC concept and how it is used in ZF is way better explained than in the ZF documentation. (Truth be told the documentation is hopeless here.) I&#8217;ve been working with ZF a &#8220;long&#8221; time now and whether the book is better for complete beginners or programmers at least a little bit familiar with Zend Framework I really can&#8217;t tell. Remembering how I struggled to find a good introduction to various topics found in the book I belive this book is a better introduction to Zend Framework than can be found in online tutorials and articles &#8211; or even the online documentation.</p>
<p>However, a beginner will get more out of this book than just learning Zend Framework. He, or she, will also learn about unit tests, build procedures and best practices.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/&amp;title=Zend+Framework+1.8+Web+Application+Development+review" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/&amp;t=Zend+Framework+1.8+Web+Application+Development+review" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/&amp;title=Zend+Framework+1.8+Web+Application+Development+review&amp;summary=Packt%20Publishing%20sent%20me%20a%20copy%20of%20Keith%20Pope%27s%20Zend%20Framework%201.8%20Web%20Application%20Development%20a%20while%20ago.%20In%20return%20they%20asked%20me%20to%20write%20what%20I%20thought%20about%20it.%20I%20have%20had%20it%20lying%20on%20my%20desk%20for%20a%20while%20but%20haven%27t%20had%20time%20to%20read%20it%20more%20carefully.%20Nevertheless%20I%20have%20actually%20used%20it%20every%20&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/&amp;title=Zend+Framework+1.8+Web+Application+Development+review" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Zend+Framework+1.8+Web+Application+Development+review+-+http://b2l.me/wt3tm&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2009/12/zend-framework-18-web-application-development-review/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Inspiration time</title>
		<link>http://www.dotvoid.com/2009/10/inspiration-time/</link>
		<comments>http://www.dotvoid.com/2009/10/inspiration-time/#comments</comments>
		<pubDate>Wed, 28 Oct 2009 11:52:30 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[agile]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.dotvoid.com/?p=400</guid>
		<description><![CDATA[I stopped working as an employee to work both on my own projects and as a freelancing consultant almost two years ago. This last year has been more like a roller coaster than anything else before. From spending very little time on my own projects while working as an independent contractor on debt collection systems [...]]]></description>
			<content:encoded><![CDATA[<p>I stopped working as an employee to work both on my own projects and as a freelancing consultant almost two years ago. This last year has been more like a roller coaster than anything else before. From spending very little time on my own projects while working as an independent contractor on debt collection systems with lots of integration to working on large scale public websites in a fast paced startup and then slowing down to work mostly on my own small projects again. During this time I have moved with my family from Karlskrona in Sweden to the south of Spain and then back to Sweden. This time we moved to Kalmar.</p>
<p>Even though free time has been somewhat scarce I have tried improving my routines when it comes to development and coding. But as the workload has been going up and down a lot I&#8217;ve mostly used the few slow periods to relax. I haven&#8217;t been to a PHP conference since 2007 and a more general software development conference since 2006. I feel I&#8217;ve been, work aside, somewhat lazy the last two years.</p>
<p>So I decided it is time to read a bit more on agile methologies, <a href="http://framework.zend.com">Zend Framework</a>, setup a completely new laptop development environment using Ubuntu 9.10, <a href="http://www.zend.com">Zend Studio 7.1 and Zend Server</a>. I will also try out <a href="http://studios.thoughtworks.com/mingle-agile-project-management">Mingle from Thoughtworks</a> for project management. Ok the last thing can be a bit weird having only one additional team member besides myself on current projects. But I&#8217;ve been interested in trying it out ever since hearing about it by Dan North from Thoughtworks in an software development conference a couple of years back. Expensive but interesting to see if it can be used in teams trying to stay agile even though they are spread out geographically.</p>
<p>At the moment I&#8217;m rereading the excellent book <a href="http://www.pragprog.com/titles/pad/practices-of-an-agile-developer">Practices of an Agile Developer</a>. It is a brilliant book packed with inspiration that can help you develop and improve your habits for an agile approach to software development. It is good to browse through it every once in a while to remind yourself on how you should work <img src='http://www.dotvoid.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  Conveniently enough I was also just recently shipped a copy of <a href="http://www.packtpub.com/zend-framework-1-8-web-application-development/book">Zend Framework 1.8 Web Application Development</a> which I hope will be an interesting read as well. I also feel it is about time I read a more in depth book on XP or Scrum. I&#8217;ll see what good books I can find on that topic.</p>
<p>So the next few weeks, when I&#8217;m not working or trying to be a good dad to my daughters, I will try not to shut down my brain in front of the TV and instead study for a bit.</p>
<p>In my experience, trying out new things and reading a few good books, can do wonders to your inspiration and also give you more energy to face both challenging as well as more mundane, even boring, tasks.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2009/10/inspiration-time/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2009/10/inspiration-time/&amp;title=Inspiration+time" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2009/10/inspiration-time/&amp;t=Inspiration+time" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2009/10/inspiration-time/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2009/10/inspiration-time/&amp;title=Inspiration+time&amp;summary=I%20stopped%20working%20as%20an%20employee%20to%20work%20both%20on%20my%20own%20projects%20and%20as%20a%20freelancing%20consultant%20almost%20two%20years%20ago.%20This%20last%20year%20has%20been%20more%20like%20a%20roller%20coaster%20than%20anything%20else%20before.%20From%20spending%20very%20little%20time%20on%20my%20own%20projects%20while%20working%20as%20an%20independent%20contractor%20on%20debt%20co&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2009/10/inspiration-time/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2009/10/inspiration-time/&amp;title=Inspiration+time" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Inspiration+time+-+http://b2l.me/wtxht&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2009/10/inspiration-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Site architecture based on Zend Framework</title>
		<link>http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/</link>
		<comments>http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/#comments</comments>
		<pubDate>Fri, 09 Oct 2009 11:48:54 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.dotvoid.com/?p=394</guid>
		<description><![CDATA[After working on the Swedish weather site klart.se for awhile I now work on my own projects again. So I have switched Codeigniter to Zend Framework again.
After a trip to Dublin I finally launched the beginning of a new social tourist Dublin guide. It is exactly the same site as both the Swedish Fuengirola guide [...]]]></description>
			<content:encoded><![CDATA[<p>After working on the Swedish weather site klart.se for awhile I now work on my own projects again. So I have switched Codeigniter to <a href="http://framework.zend.com">Zend Framework</a> again.</p>
<p>After a trip to Dublin I finally launched the beginning of a new <a href="http://www.dublincitymap.com/">social tourist Dublin guide</a>. It is exactly the same site as both the <a href="http://www.fuengirolaguide.com">Swedish Fuengirola guide</a> as well as the <a href="http://www.fuengirolamap.com">English Fuengirola guide</a> I launched after living there for five months. The functionality is somewhat basic as of yet but every now and then I&#8217;ll add something more.</p>
<p>Basing three different sites, even though they are very similar, using two different languages gives me the possibility to try out several parts of Zend Framework. It also requires a good design both in the backend and frontend to keep it maintainable. I thought maybe some people would be interested in a basic overview of the different parts needed to put everything together.</p>
<h2>Backend</h2>
<p>The sites aren&#8217;t really that complicated. On a basic level there is a MySQL database and a database layer using Zend_Db/Zend_Db_Table, there is a Zend Framework MVC architecture using models, controllers, views, layouts with Zend_Layout as well as a few view helpers and some HTML, CSS as well as Javascript. All commonly needed. There is more needed to make it a sitethough.</p>
<p>I want as little configuration per site as possible but I naturally still use Zend_Config_Ini for settings. Zend_Registry is needed to keep the global scope clean and is used to store instantiated objects that need to be available throughtout the website logic.</p>
<p>I have been a bit particular on using ZF as often as possible on these sites. With few exceptions. Thus I also use Zend_Form, Zend_Locale, Zend_Translate, Zend_Cache and more. Zend_Cache is really a no brainer and mainly used to speed up translations. This is extremely easy as Zend_Translate and Zend_Locale both are connected to the cache with one simple method call each. It is not complete but how simple this is to setup is illustrated by the below code.</p>
<pre>$configuration = new Zend_Config_Ini(
    APPLICATION_PATH .'/config/app.ini',
    APPLICATION_ENVIRONMENT
);
$frontendOptions = array(
    'lifetime' =&gt; $config-&gt;cache-&gt;lifetime,
    'automatic_serialization' =&gt; true
);
$backendOptions = array('cache_dir' =&gt; $config-&gt;cache-&gt;dir);
$cache = Zend_Cache::factory(
    'Core',
    'File',
    $frontendOptions,
    $backendOptions
);

$conf_locale = $configuration-&gt;locale;
$locale = new Zend_Locale($conf_locale);
$locale-&gt;setCache($cache);

Zend_Translate::setCache($cache);
$translate = new Zend_Translate(
    'array',
    APPLICATION_PATH .'/config/translation-' . $conf_locale . '.php',
    $conf_locale
);
$translate-&gt;setLocale($conf_locale);</pre>
<p>Zend_Form have had a few problems in many versions of ZF. In my opinion it is also a bit bloated and limiting to be used all the way. (Even though I like the automatic connection to the translation functionality in Zend_Translate and the validation through Zend_Validate) So I have settled for a simpler way where I use Zend_Form fully for validation (with Zend_Validate) and then give the view access to the form through a Zend_Form subclass to be able to print the fields individually. I think this is easier to handle than all the overloading and coding needed to fully make Zend_Form create forms as I want them. Another good thing with the form classes is that they too are locale aware and are translated automatically by connecting them to Zend_Translate through the simple line <em>Zend_Form::setDefaultTranslator($translate);</em>. The sub classed Form utility class looks like below. The generated elements are translated automatically. Very convenient.</p>
<pre>class Custom_Form extends Zend_Form  {
    /**
     * Render a field
     * @param string $name The name of the form element
     */
    public function _e($name) {
        $e = $this-&gt;getElement($name);
        return ($e) ? $e-&gt;render() : "&lt;dt&gt;Error&lt;/dt&gt;&lt;dd&gt;Missing &lt;$name&gt; field element&lt;/dd&gt;";
    }
}</pre>
<p>Another thing needed for these sites are to keep the urls understandable and thus translated into the language used on the site. For this the routes, or paths, are kept in the translation file as well. The translated paths are then registered to the router through the use of Zend_Controller_Router_Route and Zend_Controller_Router_Route_Regex objects.</p>
<pre>$frontController = Zend_Controller_Front::getInstance();
$router = $frontController-&gt;getRouter();
$router-&gt;addRoute(
    'route_review',
    new Zend_Controller_Router_Route(
        $translate-&gt;translate('route_review'),
        array('controller' =&gt; 'review', 'action' =&gt; 'index')
    )
);</pre>
<p>For image manipulation I haven&#8217;t looked further than ImageMagick. After a bit of tweaking you get very good quality when producing different image sizes.</p>
<h2>Search</h2>
<p>Last but not least, on the backend that is, there&#8217;s the search engine. ZF have an implementation of Lucene through Zend_Search_Lucene (derived from the Apache Lucene project). This is the one time I haven&#8217;t gone with ZF as I very much like the <a href="http://www.sphinxsearch.com/">open source Sphinx search engine</a> as it is so easy to integrate with MySQL. So Sphinx get to power the search.</p>
<p>This is convenient for several reasons. MySQL is not a great full text search engine, Sphinx give you better weighted results. The main reason though is the performance. Sphinx is very fast in itself but for a site with heavier traffic it is as simple as moving the search backend to it&#8217;s own machine to get a performance increase.</p>
<h2>Frontend</h2>
<p>On the frontend there is as clean html as possible to make it easy to change the design with only CSS as well as manipulate the client side with JQuery. If it wouldn&#8217;t be for the Google map the site would actually be pretty useful even without no css style at all.</p>
<p>A good practice I learned just recently (remember I&#8217;m mostly a backend developer) is to base all javascript functionality on modules that are instantiated depending on element ids present in the html. This makes it a lot simpler to split the javascript functionality into manageble pieces and also makes it a lot easier to maintain.</p>
<p>There are functionality in the client side javascript used to display error messages and information. This makes it necessary to create one javascript file with translation stirngs for each language. The correct javascript translation file is chosen in the layout (template/view file) depending on the current locale.</p>
<p>The map used is (are there any alternatives) <a href="http://code.google.com/apis/maps/">Google Maps API</a>. I chose to completely initiate the map by scanning the actual data displayed on the page. This is possible through clean html markup and also means that if I choose to list ten reviews on a page instead of five nothing need to be changed at all in the frontend. Only a loop limit on the backend.</p>
<h2>Conclusion</h2>
<p>Well. No conclusion. This was just a very basic walkthrough of most of the different pieces needed to create a fairly simple Zend Framework based website. Mostly it was a walkthrough of the bootstrap&#8230; I still hope it is useful or at least interesting.</p>
<p>I know I find it interesting to read about other sites and the architecture and design behind them.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/&amp;title=Site+architecture+based+on+Zend+Framework" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/&amp;t=Site+architecture+based+on+Zend+Framework" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/&amp;title=Site+architecture+based+on+Zend+Framework&amp;summary=After%20working%20on%20the%20Swedish%20weather%20site%20klart.se%20for%20awhile%20I%20now%20work%20on%20my%20own%20projects%20again.%20So%20I%20have%20switched%20Codeigniter%20to%20Zend%20Framework%20again.%0D%0A%0D%0AAfter%20a%20trip%20to%20Dublin%20I%20finally%20launched%20the%20beginning%20of%20a%20new%20social%20tourist%20Dublin%20guide.%20It%20is%20exactly%20the%20same%20site%20as%20both%20the%20Swedish%20&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/&amp;title=Site+architecture+based+on+Zend+Framework" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Site+architecture+based+on+Zend+Framework+-+http://b2l.me/wtxg5&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2009/10/site-architecture-based-on-zend-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zend Framework &#8211; file input labels are not translated</title>
		<link>http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/</link>
		<comments>http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/#comments</comments>
		<pubDate>Tue, 19 May 2009 15:20:30 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[i18n]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.dotvoid.com/?p=374</guid>
		<description><![CDATA[I hade some time over and updated one of my own projects to Zend Framework 1.8.1. Apart from a change in the auto loader API everything went smooth. But I was a bit annoyed to find out that a simple translation bug still was unfixed. As my project is going live soon I need that [...]]]></description>
			<content:encoded><![CDATA[<p>I hade some time over and updated one of my own projects to <a href="http://framework.zend.com">Zend Framework</a> 1.8.1. Apart from a change in the auto loader API everything went smooth. But I was a bit annoyed to find out that a simple translation bug still was unfixed. As my project is going live soon I need that bit fixed.</p>
<p>The bug is known and open so I didn&#8217;t need to report it. I voted for the issue to be fixed, waited two minutes and still no fix&#8230; I thought that was how open source projects worked <img src='http://www.dotvoid.com/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Seriously though, I fixed the issue locally and added what I think should be a correct fix in the comments. (Even though I think it is weird that the transfer adapter should even have the remotest connection to translation logic.)</p>
<p><a href="http://framework.zend.com/issues/browse/ZF-6647">http://framework.zend.com/issues/browse/ZF-6647</a></p>
<p>Looking at the statistics for Zend Framework issues I think it is time to step back and slow down on implementing new features. The diff between new issues and resolved issues is constantly getting bigger and bigger while the average time to fix an issue is getting longer and longer. This is natural as the project constantly have grown since it&#8217;s birth. But as I like working with ZF I&#8217;d hate to see it become a big and unruly behemoth that adds more problems than solutions.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/&amp;title=Zend+Framework+-+file+input+labels+are+not+translated" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/&amp;t=Zend+Framework+-+file+input+labels+are+not+translated" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/&amp;title=Zend+Framework+-+file+input+labels+are+not+translated&amp;summary=I%20hade%20some%20time%20over%20and%20updated%20one%20of%20my%20own%20projects%20to%20Zend%20Framework%201.8.1.%20Apart%20from%20a%20change%20in%20the%20auto%20loader%20API%20everything%20went%20smooth.%20But%20I%20was%20a%20bit%20annoyed%20to%20find%20out%20that%20a%20simple%20translation%20bug%20still%20was%20unfixed.%20As%20my%20project%20is%20going%20live%20soon%20I%20need%20that%20bit%20fixed.%0D%0A%0D%0AThe%20bug&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/&amp;title=Zend+Framework+-+file+input+labels+are+not+translated" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Zend+Framework+-+file+input+labels+are+not+translated+-+http://b2l.me/wvq2r&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2009/05/zend-framework-file-input-labels-are-not-translated/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Zend Framework and locales</title>
		<link>http://www.dotvoid.com/2009/04/zend-framework-and-locales/</link>
		<comments>http://www.dotvoid.com/2009/04/zend-framework-and-locales/#comments</comments>
		<pubDate>Wed, 01 Apr 2009 10:49:00 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[validation]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.dotvoid.com/?p=366</guid>
		<description><![CDATA[Last night I spent a couple of hours with Zend Framework and especially Zend_Form. I discovered, and now also reported as ZF-6175, a bug in Zend_Validate_Float when using a locale with a decimal point other than &#8220;.&#8221;. There are unit tests but none that test Zend_Validate_Float under a different locale.
It is important to know that [...]]]></description>
			<content:encoded><![CDATA[<p>Last night I spent a couple of hours with <a href="http://framework.zend.com">Zend Framework</a> and especially Zend_Form. I discovered, and now also <a href="http://framework.zend.com/issues/browse/ZF-6175">reported as ZF-6175</a>, a bug in Zend_Validate_Float when using a locale with a decimal point other than &#8220;.&#8221;. There are unit tests but none that test Zend_Validate_Float under a different locale.</p>
<p>It is important to know that floats are actually locale aware in PHP. I&#8217;m not sure if that have always been the case. The below code will actually output 10,5 as Swedish use &#8220;,&#8221; as decimal point.</p>
<pre>setlocale(LC_ALL, 'sv_SE.UTF-8');
echo 10.5;</pre>
<p>The test in Zend_Validate_Float looked like</p>
<pre>$locale = localeconv();

$valueFiltered = str_replace($locale['thousands_sep'], '', $valueString);
$valueFiltered = str_replace($locale['decimal_point'], '.', $valueFiltered);

if (strval(floatval($valueFiltered)) != $valueFiltered) {
  $this-&gt;_error();
  return false;
}</pre>
<p>Under the Swedish locale mentioned above this will result in a comparison between two strings; &#8220;10,5&#8243; and &#8220;10.5&#8243;.</p>
<p>I have proposed the following solution.</p>
<pre>$locale = localeconv();

$valueFiltered = str_replace($locale['thousands_sep'], '', $valueString);
$valueFiltered = str_replace($locale['decimal_point'], '.', $valueFiltered);

list($num, $dec) = explode('.', $valueFiltered);
if (strval(intval($num)) != $num || strval(intval($dec)) != $dec) {
  $this-&gt;_error();
  return false;
}</pre>
<p>But I just realized that it can be further simplified.</p>
<pre>$locale = localeconv();

$valueFiltered = str_replace($locale['thousands_sep'], '', $valueString);

list($num, $dec) = explode($locale['decimal_point'], $valueFiltered);
if (strval(intval($num)) != $num || strval(intval($dec)) != $dec) {
  $this-&gt;_error();
  return false;
}</pre>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2009/04/zend-framework-and-locales/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2009/04/zend-framework-and-locales/&amp;title=Zend+Framework+and+locales" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2009/04/zend-framework-and-locales/&amp;t=Zend+Framework+and+locales" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2009/04/zend-framework-and-locales/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2009/04/zend-framework-and-locales/&amp;title=Zend+Framework+and+locales&amp;summary=Last%20night%20I%20spent%20a%20couple%20of%20hours%20with%20Zend%20Framework%20and%20especially%20Zend_Form.%20I%20discovered%2C%20and%20now%20also%20reported%20as%20ZF-6175%2C%20a%20bug%20in%20Zend_Validate_Float%20when%20using%20a%20locale%20with%20a%20decimal%20point%20other%20than%20%22.%22.%20There%20are%20unit%20tests%20but%20none%20that%20test%20Zend_Validate_Float%20under%20a%20different%20local&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2009/04/zend-framework-and-locales/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2009/04/zend-framework-and-locales/&amp;title=Zend+Framework+and+locales" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Zend+Framework+and+locales+-+http://b2l.me/wt8x8&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2009/04/zend-framework-and-locales/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Statistics</title>
		<link>http://www.dotvoid.com/2008/11/statistics/</link>
		<comments>http://www.dotvoid.com/2008/11/statistics/#comments</comments>
		<pubDate>Mon, 10 Nov 2008 14:30:25 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Personal]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.dotvoid.com/?p=332</guid>
		<description><![CDATA[Last week we launched a new beta of our Swedish TV guide. It used to be based on Zend Framework 1.0 and has now been completely rewritten and upgraded to version 1.6.2. We didn&#8217;t seem to have any difficulties moving from 1.5 to  1.6 during development.
The framework is getting better and better even though I [...]]]></description>
			<content:encoded><![CDATA[<p>Last week we launched a new beta of our <a href="http://www.tvrutan.se">Swedish TV guide</a>. It used to be based on <a href="http://framework.zend.com">Zend Framework</a> 1.0 and has now been completely rewritten and upgraded to version 1.6.2. We didn&#8217;t seem to have any difficulties moving from 1.5 to  1.6 during development.</p>
<p>The framework is getting better and better even though I probably never will use things like the <a href="http://framework.zend.com/manual/en/zend.form.html">form builder functionality</a>. One should never say never. But it seems backwards to me and I think it makes it more difficult to produce more advanced user friendly form based applications. Maybe I should force myself to use it a few times so that I can have a better opinion on it. Maybe&#8230;</p>
<p style="text-align: left;">Anyways, I&#8217;m more than happy with the first few days.</p>
<div class="mceTemp mceIEcenter" style="text-align: left;">
<dl id="attachment_333" class="wp-caption aligncenter" style="width: 383px;">
<dt class="wp-caption-dt"><a href="http://www.dotvoid.com/wp-content/uploads/2008/11/screenshot-dashboard-google-analytics-mozilla-firefox.png"><img class="size-medium wp-image-333" title="TV-rutan Statistics" src="http://www.dotvoid.com/wp-content/uploads/2008/11/screenshot-dashboard-google-analytics-mozilla-firefox.png" alt="TV-rutan Statistics" width="373" height="162" /></a></dt>
<dd class="wp-caption-dd">TV-rutan Statistics</dd>
</dl>
</div>
<p style="text-align: left;">


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2008/11/statistics/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2008/11/statistics/&amp;title=Statistics" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2008/11/statistics/&amp;t=Statistics" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2008/11/statistics/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2008/11/statistics/&amp;title=Statistics&amp;summary=Last%20week%20we%20launched%20a%20new%20beta%20of%20our%20Swedish%20TV%20guide.%20It%20used%20to%20be%20based%20on%20Zend%20Framework%201.0%20and%20has%20now%20been%20completely%20rewritten%20and%20upgraded%20to%20version%201.6.2.%20We%20didn%27t%20seem%20to%20have%20any%20difficulties%20moving%20from%201.5%20to%C2%A0%201.6%20during%20development.%0D%0A%0D%0AThe%20framework%20is%20getting%20better%20and%20better%20&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2008/11/statistics/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2008/11/statistics/&amp;title=Statistics" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Statistics+-+http://b2l.me/wtwyd&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2008/11/statistics/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Two weeks with Zend Studio for Eclipse</title>
		<link>http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/</link>
		<comments>http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/#comments</comments>
		<pubDate>Sat, 18 Oct 2008 08:38:17 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[zend framework]]></category>
		<category><![CDATA[zend studio]]></category>

		<guid isPermaLink="false">http://www.dotvoid.com/?p=279</guid>
		<description><![CDATA[After more than ten years with Emacs and terminal flipping as my primary development environment, whether for C, PHP, WSDL, HTML/CSS or javascript, I decided to try (I mean really really try) an IDE for a while. As PHP is my main focus these days I have been looking towards Zend Studio for Eclipse. I [...]]]></description>
			<content:encoded><![CDATA[<p>After more than ten years with Emacs and terminal flipping as my primary development environment, whether for C, PHP, WSDL, HTML/CSS or javascript, I decided to try (I mean <em>really really try</em>) an IDE for a while. As PHP is my main focus these days I have been looking towards <a href="http://www.zend.com/en/store/software/studio/">Zend Studio for Eclipse</a>. I figured Eclipse with it&#8217;s maturity must work well enough on linux.</p>
<p>Why am I not happy with emacs and the power of the command line and all the tools available a few key strokes away you might ask? Well, as being a <a href="http://undefined.com/ia/2006/10/24/the-fourteen-types-of-programmers-type-4-lazy-ones/">lazy programmer</a> is nowadays considered being a plus, I want some more help from the environment. I want to be reminded about all those FIXME&#8217;s and TODO&#8217;s scattered in the code. I want better integration with subversion, better and easier testing and reliable refactoring support for starters.</p>
<h2>Getting started</h2>
<p>It is easy try an IDE and quickly loose interest. You start the program, look around, get annoyed when you don&#8217;t find the keyboard shortcuts or don&#8217;t understand the concepts. I&#8217;ve done that before. I know this and decided to use Zend Studio on the biggest project I&#8217;m on at the moment. The team members are located in two different countries, use different operating systems and time is sparse. Everything needs to run smoothly. Blissfully ignoring the tingling bells warning me not to do it I imported the project into Zend Studio from subversion.</p>
<p>That part went really well. It seems easier to import a project from subversion than directly from a directory structure.</p>
<h2>Using the IDE</h2>
<p>One of the concepts I always have had trouble understanding is when the IDE keeps weird project files in the code tree. Thouse files should not be part of the project. Team members should be free to use whatever tools they find best for their productivity. Zend Studio does not do this even though it has it&#8217;s own status for files which is good. It can still be a bit annoying when Zend Studio gives me the weird error <em>Could not open the editor: Editor could not be initialized</em> when opening files. Huh? If you look at the java exception, available as error details, it only means the resource or file have been changed from outside of Zend Studio. To open it you need to refresh the file through F5. A minor nuisance but why not tell me the file is changed and ask if I want to reload the file? It can&#8217;t be that hard.</p>
<p>There are many good things though. I like having PHP Documentor just a click away. Using the refactoring feature and being able to reliably rename class methods throughout the project is a big plus. Code folding, inline language warnings and errors in the editor and easily navigating between different places in the code are also things that makes life easier. It is also something you&#8217;d expect in any modern IDE. Sometimes I miss grep on the command line but it is probably just a matter of getting used to the GUI way of searching.</p>
<p>So all in all I&#8217;m happy this far. The IDE gives me the support I want. But there are a few things that I think is problematic.</p>
<p>Subversion integration. It is easy to see the history of a file and compare against different revisions directly in the IDE. But it is actually very hard to see the small annotation icons which indicates if a file has local changes. (I have a 17&#8243; laptop with a screen resolution of 1920&#215;1200.) And the other day when committing a change that spanned many files in many directories not all of the changed files were selected for commit. I didn&#8217;t notice this and subsequently the when updating the test environment it broke. Easily fixed but still annoying. This problem together with the editor not handling file updates from outside of the IDE is making life a little bit harder than it should be.</p>
<p>Encoding support. I am in the habit of using UTF-8 for everything. This particular project was originally created on a windows machine and all the files were encoded in ISO-8859-1. I didn&#8217;t give it much thought as i&#8217;ve been on the project for some time and Emacs have always detected the encoding without bothering me. Zend Studio for Eclipse use UTF-8 as default but completely ignores the encoding in the already existing files. I didn&#8217;t notice the problem until a team member using windows called me and asked why I screwed up the files.</p>
<p>It is my responsibility but the stupid editor didn&#8217;t exactly help me. Setting the project encoding to ISO-8859-1 and then manually fixing the faulty files removed this issue.</p>
<p>Both of the above problems can be fixed by me being a bit more careful now that I know more about the IDE. It is still serious when you can&#8217;t trust the IDE fully.</p>
<p>The last and most annoying bit is the speed. Or rather lack of speed. The program is slow. Dead slow. I have a modern dual core laptop with 3 Gb RAM running Ubuntu 8.04.1. Zend Studio for Eclipse is a bit slow to start with. After working a few hours in the IDE the editor can&#8217;t even keep up with my writing. After a long day the laptop sometimes start swapping. I don&#8217;t know if it Eclipse, the Zend Studio part or java itself. The speed is still not acceptable.</p>
<h2>Summary</h2>
<p>I chose to try the Professional edition as I want, among other things, subversion and refactoring support which is not available in the <a href="http://www.eclipse.org/pdt/">community version</a>. The price is 399€ which isn&#8217;t that much if it increase my productivity enough. The slow editor and the fact that I have to double check many things isn&#8217;t really a productivity boost though. I haven&#8217;t used all the features I thought I needed. On the other hand I have only tried it with an old, non <a href="http://framework.zend.com">Zend Framework</a> project. Support for the framework, which I use for new development, is integrated into the IDE in various ways and I haven&#8217;t had the time to try it out.</p>
<p>The trial version is working another two weeks. Before then I have to decide if the extra features in the commercial version are worth 399€.</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/&amp;title=Two+weeks+with+Zend+Studio+for+Eclipse" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/&amp;t=Two+weeks+with+Zend+Studio+for+Eclipse" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/&amp;title=Two+weeks+with+Zend+Studio+for+Eclipse&amp;summary=After%20more%20than%20ten%20years%20with%20Emacs%20and%20terminal%20flipping%20as%20my%20primary%20development%20environment%2C%20whether%20for%20C%2C%20PHP%2C%20WSDL%2C%20HTML%2FCSS%20or%20javascript%2C%20I%20decided%20to%20try%20%28I%20mean%20really%20really%20try%29%20an%20IDE%20for%20a%20while.%20As%20PHP%20is%20my%20main%20focus%20these%20days%20I%20have%20been%20looking%20towards%20Zend%20Studio%20for%20Eclipse.%20&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/&amp;title=Two+weeks+with+Zend+Studio+for+Eclipse" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Two+weeks+with+Zend+Studio+for+Eclipse+-+http://b2l.me/wwfpt&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2008/10/two-weeks-with-zend-studio-for-eclipse/feed/</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>Zend Feed for a Swedish web development blog aggregator</title>
		<link>http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/</link>
		<comments>http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/#comments</comments>
		<pubDate>Sun, 11 Mar 2007 18:09:38 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[web design]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.commodi.com/?p=213</guid>
		<description><![CDATA[Lately I have begun to get more and more annoyed with my feed reader. I use a simple feed reader which lack most features except for subscribing to and reading feeds. The one thing that annoys me the most is that it can&#8217;t aggregate several feeds into one feed. Yesterday I finally decided to scratch [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I have begun to get more and more annoyed with my feed reader. I use a simple feed reader which lack most features except for subscribing to and reading feeds. The one thing that annoys me the most is that it can&#8217;t aggregate several feeds into one feed. Yesterday I finally decided to scratch that itch.</p>
<p>What I want to aggregate are Swedish web development and web entrepeneur blogs. I like the <a href="http://www.planetplanet.org/">planet-planet</a> concept that for example <a href="http://www.planet-php.net/">planet-php</a> use. (Though I don&#8217;t think planet-php use python&#8230;) Conveniently I had this <a href="http://en.wikipedia.org/wiki/Internationalized_domain_name">idn domain</a>, <a href="http://översikt.se/">översikt.se</a>, lying around which I haven&#8217;t used up until now. As is normal nowadays (for me at least) I used Zend Framework to build the site. It was the first time I used Zend_Feed class. I works like a charm.</p>
<p>The whole website logic (both model and controller) is about 200 lines of code. And the main logic of fetching the feeds are really nice and short.</p>
<pre>foreach($urls as $url) {
    try {
      $feed = Zend_Feed::import($url['feedurl']);
    }
    catch(PDOException $ex) {
      error_log($ex-&gt;getMessage());
      continue;
    }

    $feedTitle = $feed-&gt;title;
    $feedLink = $feed-&gt;link;
    $title = '';
    $link = '';
    $desc = '';
    $pub = '';

    foreach ($feed as $item) {
      if (is_a($feed, "Zend_Feed_Rss")) {
        $title = $item-&gt;title();
        $link = $item-&gt;link();
        $desc = $item-&gt;description();
        $publ = ($item-&gt;pubDate()) ? $item-&gt;pubDate() : $item-&gt;date();
      }
      else if(is_a($feed, "Zend_Feed_Atom")) {
        $title = $item-&gt;title();
        $link = $item-&gt;link('alternate');
        $desc = $item-&gt;content();
        $publ = ($item-&gt;issued()) ? $item-&gt;issued() : $item-&gt;published();
      }
      else {
        error_log("Feed &lt;$feedid&gt; is an unsupported format");
        continue;
      }

      // Parse and normalize date and check if new
      $time = strtotime($publ);
      $publ = date("c", $time);

      // Execute the previously prepared sql insert statement
      $result = $sti-&gt;execute(array(
          'feedid' =&gt; $url['feedid'],
          'title' =&gt; $title,
          'link' =&gt; $link,
          'publ' =&gt; $publ,
          'desc' =&gt; $desc));
    }
}</pre>
<p>I skipped database exception and error handing in the above code to make it even more readable. Zend_Feed have failed me only once when trying to read and parse an old weird rss format. Wonderful.</p>
<p>(For those that don&#8217;t have browsers that support idn-domains I linked to the punycode variant of the domain name översikt.se, www.xn--versikt-80a.se, above. But mostly because my damn editor refuses to use the Swedish letter &#8220;ö&#8221; in the href attribute.)</p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/&amp;title=Zend+Feed+for+a+Swedish+web+development+blog+aggregator" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/&amp;t=Zend+Feed+for+a+Swedish+web+development+blog+aggregator" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/&amp;title=Zend+Feed+for+a+Swedish+web+development+blog+aggregator&amp;summary=Lately%20I%20have%20begun%20to%20get%20more%20and%20more%20annoyed%20with%20my%20feed%20reader.%20I%20use%20a%20simple%20feed%20reader%20which%20lack%20most%20features%20except%20for%20subscribing%20to%20and%20reading%20feeds.%20The%20one%20thing%20that%20annoys%20me%20the%20most%20is%20that%20it%20can%27t%20aggregate%20several%20feeds%20into%20one%20feed.%20Yesterday%20I%20finally%20decided%20to%20scratch%20&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/&amp;title=Zend+Feed+for+a+Swedish+web+development+blog+aggregator" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Zend+Feed+for+a+Swedish+web+development+blog+aggregator+-+http://b2l.me/wwec5&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2007/03/zend-feed-for-a-swedish-web-development-blog-aggregator/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Losing market share with PHP 4</title>
		<link>http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/</link>
		<comments>http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/#comments</comments>
		<pubDate>Tue, 13 Feb 2007 08:34:37 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.commodi.com/?p=210</guid>
		<description><![CDATA[
It looks like PHP 4 is still going strong as a worried Clay Loveless write on his blog. Ivo Jansch have an older article, PHP 5 adoption &#8211; a summary, on the subject. It is true that the PHP 5 uptake has been slow. Many internet service providers as well as many developers are reluctant [...]]]></description>
			<content:encoded><![CDATA[<div class="preamble">
<p>It looks like <a href="http://www.nexen.net/chiffres_cles/phpversion/php_statistics_for_january_2007.php#majeure">PHP 4 is still going strong </a>as a worried <a href="http://killersoft.com/randomstrings/2007/02/12/why-not-php-5/">Clay Loveless write</a> on his blog. Ivo Jansch have an older article, <a href="http://www.achievo.org/blog/archives/52-PHP5-adoption-a-summary.html">PHP 5 adoption &#8211; a summary</a>, on the subject. It is true that the PHP 5 uptake has been slow. Many internet service providers as well as many developers are reluctant to switch. This is probably, as others have stated, a circular dependency. When lots of popular open source applications still only work with PHP 4, ISP:s are reluctant to upgrade. As ISP:s are reluctant to upgrade the popular open source projects are hesitant to upgrade. I still think the wrong people are worried. Still PHP 5 is increasing it&#8217;s share and finally the day will come when version 4 will be considered legacy. Hopefully before PHP 6 is here but not necessarily.</p>
<p>PHP 5 is not all about objects as some developers seem to think. New features in the language itself as well as modern frameworks like <a href="http://framework.zend.com/">Zend Framework</a> written completely in PHP 5 makes it easier and faster to produce quality software. Even though people &#8211; surprisingly &#8211; think that todays situation is set in stone and that things never will change they will. Popular open source applications written in PHP 4 will be overrun by new fresh applications that fully make use of all the new features. These applications are developed faster with better quality. If the service providers do not upgrade they will soon not be able to attract new customers. Eventually they will even start losing customers.</p>
<p>So if open source projects want to stay competetive, the project leaders &#8211; if any &#8211; would do good in thinking hard on switching before it is too late. The ISP:s would also do good in planning ahead. The new fresh applications of tomorrow (and today) won&#8217;t work on their servers. If they want the new customers they need to adopt PHP 5 soon. I think that the early adopters, that struggle today, may soon be the winners.</p></div>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/&amp;title=Losing+market+share+with+PHP+4" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/&amp;t=Losing+market+share+with+PHP+4" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/&amp;title=Losing+market+share+with+PHP+4&amp;summary=%0D%0A%0D%0AIt%20looks%20like%20PHP%204%20is%20still%20going%20strong%20as%20a%20worried%20Clay%20Loveless%20write%20on%20his%20blog.%20Ivo%20Jansch%20have%20an%20older%20article%2C%20PHP%205%20adoption%20-%20a%20summary%2C%20on%20the%20subject.%20It%20is%20true%20that%20the%20PHP%205%20uptake%20has%20been%20slow.%20Many%20internet%20service%20providers%20as%20well%20as%20many%20developers%20are%20reluctant%20to%20switch&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/&amp;title=Losing+market+share+with+PHP+4" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=Losing+market+share+with+PHP+4+-+File: /data/app/webapp/functions.php<br />Line: 66<br />Message: Duplicate entry 'wtymP' for key 'code'&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2007/02/losing-market-share-with-php-4/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>New help desk application using Zend Framework</title>
		<link>http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/</link>
		<comments>http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/#comments</comments>
		<pubDate>Thu, 02 Nov 2006 23:36:05 +0000</pubDate>
		<dc:creator>Danne</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://www.commodi.com/?p=198</guid>
		<description><![CDATA[Every now and then I sit down to take a closer look on various PHP frameworks to see if it is something I would want to use. For some reason I have never actually used any of the frameworks I have investigated. Too stubborn I guess. A while ago, when I was working on an [...]]]></description>
			<content:encoded><![CDATA[<p>Every now and then I sit down to take a closer look on various PHP frameworks to see if it is something I would want to use. For some reason I have never actually used any of the frameworks I have investigated. Too stubborn I guess. A while ago, when I was working on an old web application, I realized I was spending time on way too many things that was not really part of the application logic. Not very productive at all.</p>
<p>I decided that it was time to really make the effort and test a framework in a real project. I had a look around and decided to use the brand new <a href="http://framework.zend.com/">Zend Framework</a> as the base for a hosted help desk solution. I need a help desk solution myself to handle customer support in <a href="http://www.mesh.se/">my company</a> and fail to find something I like. It seems help desk applications  are either to complicated (packed with CRM, CM and help desk features), or just too ugly (in my opinion). So all in all a perfect project that would fill a real need.</p>
<p>Why Zend Framework over more mature frameworks then? It is still brand new and very much in development. Zend Framework Preview 0.2.0 was released only a couple of days ago. The reason I chose this framework over others was first of all simplicity. But no less important is the fact that it has no legacy &#8211; there are no PHP 4 backwards compatibility workarounds. This means that it can fully take advantage of PHP 5.</p>
<p>I have been working with the framework for a couple of weeks now and I must say that I really like the simple MVC implementation in Zend Framework. I have started using only the built in &#8220;PHP template&#8221; solution but it would be easy to switch to <a href="http://smarty.php.net/">Smarty</a> or any other template engine. The help desk solution is coming along nicely and should soon be ready for a public demo/beta. I just need to decide on a name and domain where I should host it.</p>
<p style="text-align: center;"><a title="Main view in Firesite Help Desk" href="http://www.commodi.com/wp-content/uploads/2008/09/fs__media_mod_action.png"><img class="size-medium wp-image-199 aligncenter" title="Main view in Firesite Help Desk" src="http://www.dotvoid.com/wp-content/uploads/2008/09/fs__media_mod_action-300x190.png" alt="Main view in Firesite Help Desk" /></a></p>
<p style="text-align: center;"><a title="Viewing a ticket in Firesite Help desk" href="http://www.commodi.com/wp-content/uploads/2008/09/fs__media_mod_action_003.png"><img class="size-medium wp-image-200 aligncenter" title="Viewing a ticket in Firesite Help desk" src="http://www.dotvoid.com/wp-content/uploads/2008/09/fs__media_mod_action_003-300x176.png" alt="Viewing a ticket in Firesite Help desk" /></a></p>


<div class="shr-bookmarks shr-bookmarks-expand shr-bookmarks-center shr-bookmarks-bg-knowledge">
<ul class="socials">
		<li class="shr-comfeed">
			<a href="http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/feed" rel="nofollow" class="external" title="Subscribe to the comments for this post?">Subscribe to the comments for this post?</a>
		</li>
		<li class="shr-delicious">
			<a href="http://delicious.com/post?url=http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/&amp;title=New+help+desk+application+using+Zend+Framework" rel="nofollow" class="external" title="Share this on del.icio.us">Share this on del.icio.us</a>
		</li>
		<li class="shr-facebook">
			<a href="http://www.facebook.com/share.php?v=4&amp;src=bm&amp;u=http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/&amp;t=New+help+desk+application+using+Zend+Framework" rel="nofollow" class="external" title="Share this on Facebook">Share this on Facebook</a>
		</li>
		<li class="shr-googlebuzz">
			<a href="http://www.google.com/buzz/post?url=http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/&amp;imageurl=" rel="nofollow" class="external" title="Post on Google Buzz">Post on Google Buzz</a>
		</li>
		<li class="shr-linkedin">
			<a href="http://www.linkedin.com/shareArticle?mini=true&amp;url=http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/&amp;title=New+help+desk+application+using+Zend+Framework&amp;summary=Every%20now%20and%20then%20I%20sit%20down%20to%20take%20a%20closer%20look%20on%20various%20PHP%20frameworks%20to%20see%20if%20it%20is%20something%20I%20would%20want%20to%20use.%20For%20some%20reason%20I%20have%20never%20actually%20used%20any%20of%20the%20frameworks%20I%20have%20investigated.%20Too%20stubborn%20I%20guess.%20A%20while%20ago%2C%20when%20I%20was%20working%20on%20an%20old%20web%20application%2C%20I%20realiz&amp;source=dotvoid.com" rel="nofollow" class="external" title="Share this on LinkedIn">Share this on LinkedIn</a>
		</li>
		<li class="shr-plaxo">
			<a href="http://www.plaxo.com/?share_link=http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/" rel="nofollow" class="external" title="Share this on Plaxo">Share this on Plaxo</a>
		</li>
		<li class="shr-stumbleupon">
			<a href="http://www.stumbleupon.com/submit?url=http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/&amp;title=New+help+desk+application+using+Zend+Framework" rel="nofollow" class="external" title="Stumble upon something good? Share it on StumbleUpon">Stumble upon something good? Share it on StumbleUpon</a>
		</li>
		<li class="shr-twitter">
			<a href="http://twitter.com/home?status=New+help+desk+application+using+Zend+Framework+-+http://b2l.me/wujhf&amp;source=shareaholic" rel="nofollow" class="external" title="Tweet This!">Tweet This!</a>
		</li>
</ul>
<div style="clear:both;"></div>
</div>

]]></content:encoded>
			<wfw:commentRss>http://www.dotvoid.com/2006/11/new-help-desk-application-using-zend-framework/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

