<?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>Skyrocket.be &#187; Webdevelopment</title>
	<atom:link href="http://www.skyrocket.be/category/webdevelopment/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.skyrocket.be</link>
	<description>Chris Ramakers over webdesign, webdevelopment en webtrends</description>
	<lastBuildDate>Thu, 31 Dec 2009 10:38:14 +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>PHP&#8217;s function naming and argument order</title>
		<link>http://www.skyrocket.be/2009/05/30/php-function-naming-and-argument-order/</link>
		<comments>http://www.skyrocket.be/2009/05/30/php-function-naming-and-argument-order/#comments</comments>
		<pubDate>Sat, 30 May 2009 22:19:29 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/?p=210</guid>
		<description><![CDATA[Just got back from PHPVikinger, a unconference, traveling around the world, organised by Derick Rethans. This year&#8217;s conference was held in Leuven, and since that is only a 30 minute drive from where I live I had to attend ofcourse.
For the summary of the event itself I&#8217;m happy to point you to Jeroen&#8217;s blog but [...]]]></description>
			<content:encoded><![CDATA[<p>Just got back from <a href="http://phpvikinger.org/" class="extlink">PHPVikinger</a>, a unconference, traveling around the world, organised by Derick Rethans. This year&#8217;s conference was held in Leuven, and since that is only a 30 minute drive from where I live I had to attend ofcourse.</p>
<p>For the summary of the event itself I&#8217;m happy to point you to <a href="http://www.weble.be/blog/2009/05/php-vikinger/" class="extlink">Jeroen&#8217;s blog</a> but I&#8217;d like to talk about something <a href="http://leftontheweb.com/" class="extlink">Stefan Koopmanschap</a> brought up during <a href="http://www.macvicar.net/" class="extlink">Scott</a>&#8217;s and <a href="http://derickrethans.nl/" class="extlink">Derick</a>&#8217;s session on the <abbr title="PHP Developer Meeting">PDM</abbr>.</p>
<p>During the Q&#038;A Stefan asked why the developers of <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> didn&#8217;t grab the opportunity to clean up the seemingly random and sometimes messed up functionnaming and argument ordering in some of PHP&#8217;s internal functions. Stefan by far isn&#8217;t the first one to bring this issue up, there are dozens of people reporting and asking this on the mailinglist and even filing bugs for it (<a href="http://bugs.php.net/bug.php?id=37088" class="extlink">with questionable degrees of success</a>) but he did make a very valid point by stating that the release of PHP6 is the moment of choice to introduce these kind of changes in the core functionality of the language.</p>
<h3>Function Naming</h3>
<p>So what is this all about? Well really, as much as I love PHP, in several area&#8217;s it&#8217;s a mess. Especially in function naming.<br />
Take the <code>isset()</code> function for example. Why is the <code>is_null()</code> function written with an underscore, these functions seem to me like they belong together since they both inspect a variable and return true or false if the state of the variable is as the function requested. Well then why is is_null written with an underscore and isset not? Doesn&#8217;t really make sense unless you want to confuse people.</p>
<p>Another example is the <code>htmlentities()</code> function, this function encodes some characters in a string with their entity value, the function that does the exact opposite is called <code>html_entity_decode()</code>. Again one is written with underscores, the other without. And again without an obvious reason.</p>
<p>Other examples are all the <a href="http://be.php.net/strings" class="extlink">string functions</a>, there are a dozen function that start with <code>str_</code> and alot more of them that just start with <code>str</code>.</p>
<h3>Argument order</h3>
<p>Another issue is argument order. There are several functions that seem rather random in the way they order arguments. Especially function that required needle/haystack arguments.</p>
<p>String functions, like <code>strstr()</code> for example, accept <code>$haystack</code> as a first argument and <code>$needle</code> as a second while array function like <code>array_search</code> accept them in the reverse order. It just seems counter intuitive to me.</p>
<h3>PHP 6</h3>
<p>What disturbs me the most was the reply Scott and Derick gave Stefan at the conference, their reply simply was that it won&#8217;t be fixed because otherwise a lot of developers would be upset about the changes and lacking backwards compatibility. </p>
<p>Well they have a valid point there &#8230; if you&#8217;d consider fixing it in a minor version upgrade like from PHP 5.2 to 5.3. But if we are talking upgrading from PHP 5 to PHP 6 I&#8217;m absolutely sure the majority of PHP developers wouldn&#8217;t mind giving up backwards compatibility in exchange for fixing these issues. Over time the amount of functions in PHP really isn&#8217;t going to decrease so I&#8217;d prefer to have it fixed before it really runs out of control. But who am I?</p>
<p>I hope that with this blogpost I&#8217;ve inspired some people to think about this subject too and maybe undertake some action and write about it on their blog or twitter it since this isn&#8217;t something that is going to change unless us, PHP users, are asking for it and making the PHP core developers aware of these issues and that fixing them is important to us.</p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2009/05/30/php-function-naming-and-argument-order/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Oracle koopt Sun Microsystems</title>
		<link>http://www.skyrocket.be/2009/04/20/oracle-koopt-sun-microsystems/</link>
		<comments>http://www.skyrocket.be/2009/04/20/oracle-koopt-sun-microsystems/#comments</comments>
		<pubDate>Mon, 20 Apr 2009 18:56:31 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[Applicaties]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/?p=204</guid>
		<description><![CDATA[Het moest me even van het hart maar ik weet nu niet of ik blij moet zijn met de overname van Sun door Oracle of dat ik er bij moet beginnen te huilen?
Door deze overname krijgt oracle niet alleen Java (en NetBeans), maar ook Solaris, VirtualBox, Open Office én MySQL in handen. Als dat geen [...]]]></description>
			<content:encoded><![CDATA[<p>Het moest me even van het hart maar ik weet nu niet of ik blij moet zijn met de <a href="http://www.techcrunch.com/2009/04/20/oracle-to-buy-sun-hold-on-to-your-hats/" class="extlink">overname van Sun door Oracle</a> of dat ik er bij moet beginnen te huilen?</p>
<p>Door deze overname krijgt oracle niet alleen Java (en NetBeans), maar ook Solaris, VirtualBox, Open Office én <abbr title="My Server Query Language - A database management system">MySQL</abbr> in handen. Als dat geen joekel van een investering is dan weet ik het niet. Dat heeft <a href="http://en.wikipedia.org/wiki/Larry_Ellison" class="extlink">den Larry</a> weer goed geregeld zou ik zo zeggen. Het is ook niet zo gek dat het bestuur van Oracle de overname unaniem heeft goedgekeurd.</p>
<p>Ik denk en hoop dat Microsoft zich stilaan serieus zorgen begint te maken. Google blijft hun steeds een stapje (met een zevenmijls laars) voor op het internet en op het niveau van besturingssystemen beginnen de verhoudingen ook steeds meer en meer te kantelen. Er zijn steeds meer mensen die <a href="http://www.inventis.be/blog/overschakelen-naar-een-mac-op-10-weken" class="extlink">overschakelen van Windows naar Mac</a> of een <a href="http://www.skyrocket.be/2009/01/06/overschakelen-op-ubuntu/">ander OS zoals Linux</a>.</p>
<p>Als we de productportfolio van Sun even bekijken dan zie je al direct 4 direct concurrerende producten van Microsoft;</p>
<ul>
<li>OpenSolaris vs WindowsServer</li>
<li>Java vs .NET</li>
<li>OpenOffice vs Microsoft Office</li>
<li>VirtualBox (xVM) vs VirtualPC (VirtualServer)</li>
</ul>
<p>En wat gaat er met Open Office gebeuren? Als Oracle zijn schouders onder het project zet wordt het eens te meer een zware concurrent van Microsoft Office, want laten we eerlijk zijn, waarvoor jij en ik office gebruiken hoef je geen €600 neer te tellen, hetzelfde bereiken we met sprekend gemak ook met Open Office. Het enige wat me dan misschiens nog een beetje tegenzit in Open Office is een compleet alternatief voor Outlook. Dat Oracle daar dan maar mee begint, dan hebben ze er al één klant bij &#8230; als ze met hun fikken van MySQL af blijven tenminste <img src='http://www.skyrocket.be/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2009/04/20/oracle-koopt-sun-microsystems/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Dojo Dijits in Zend_Layout</title>
		<link>http://www.skyrocket.be/2009/02/11/dojo-dijits-in-zend_layout/</link>
		<comments>http://www.skyrocket.be/2009/02/11/dojo-dijits-in-zend_layout/#comments</comments>
		<pubDate>Wed, 11 Feb 2009 21:18:26 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/?p=195</guid>
		<description><![CDATA[A quick tip on using the Dojo implementation in Zend Framework.
Yesterday I was trying to put a borderContainer on my application. Following the code samples in the manual I had it set up pretty fast in my View, but since all pages should utilize this it seemed normal to me that I would integrate this [...]]]></description>
			<content:encoded><![CDATA[<p>A quick tip on using the <strong>Dojo implementation in Zend Framework</strong>.</p>
<p>Yesterday I was trying to put a <a href="http://framework.zend.com/manual/en/zend.dojo.view.html#zend.dojo.view.dijit.layout" class="extlink">borderContainer</a> on my application. Following the code samples in the manual I had it set up pretty fast in my View, but since all pages should utilize this it seemed normal to me that I would integrate this in my Zend_Layout instead of each View separately.</p>
<p>Thus I moved all the code to my Zend_Layout and tada &#8230; no more Dojo, it just stopped working. The code below is the (simplified) code of my Zend_Layout at that time.</p>
<pre class="brush: php;">
&lt; ?php
$this-&gt;headTitle()-&gt;setSeparator(' :: ');
$this-&gt;headTitle()-&gt;append('Skyrocket Admin');

echo $this-&gt;doctype() ?&gt;
&lt;<abbr title="HyperText Markup Language">HTML</abbr> xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
	&lt; ?= $this-&gt;headTitle() ?&gt;
	&lt; ?= $this-&gt;headLink() ?&gt;
	&lt; ?= $this-&gt;headStyle() ?&gt;
	&lt; ?= $this-&gt;headScript() ?&gt;
	&lt; ? $this-&gt;dojo()-&gt;setLocalPath('/admin/scripts/dojo/dojo.js')
	                -&gt;addStyleSheetModule('dijit.themes.tundra');?&gt;
	&lt; ?= $this-&gt;dojo() ?&gt;
&lt;/head&gt;
&lt;body class=&quot;tundra&quot;&gt;

&lt; ?
// Load the Dojo helpers
$this-&gt;addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');

// The page layout is a borderContainer, the views
// get rendered in the Center pane
$this-&gt;borderContainer()-&gt;captureStart('masterLayout',
                                       array('design' =&gt; 'headline'),
									   array('style' =&gt; 'width: 100%; height: 100%'));

	$this-&gt;contentPane()-&gt;captureStart('leftPane',
	                                   array('region' =&gt; 'left', 'splitter' =&gt; true),
									   array('style' =&gt; 'width: 200px'));
		?&gt;
		&lt;ul id=&quot;navigation&quot; style=&quot;margin: 0&quot;&gt;
			&lt;li&gt;&lt;a href=&quot;/admin/pages&quot;&gt;Pages&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;/admin/auth/logout&quot;&gt;Logout&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt; ?
	echo $this-&gt;contentPane()-&gt;captureEnd('leftPane');

	$this-&gt;contentPane()-&gt;captureStart('contentPane',
	                                   array('region' =&gt; 'center'));
		echo $this-&gt;layout()-&gt;content;

	echo $this-&gt;contentPane()-&gt;captureEnd('contentPane');

echo $this-&gt;borderContainer()-&gt;captureEnd('masterLayout');

?&gt;
&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>Back then it was almost 2AM so I didn&#8217;t feel like going after the solution. I dropped a post on <a href="http://www.zfforums.com/zend-framework-general-discussions-1/general-q-zend-framework-2/dojo-zend_layout-2341.html#post7790" class="extlink">Zfforums.com</a> and went to sleep. Today on the other hand I felt like digging through the classes that are responsible for creating the dijits and it didn&#8217;t took too long to realize what was wrong.</p>
<p>The problem lies in the order of execution, the Zend_Dojo_View_Helper_Dojo class is responsible for outputting the javascript code that converts your basic html elements into Dijits. But in the code sample above I was outputting the dojo() helper before I was actually creating Dijits. Thus the HTML elements got created but the javascript code to convert them into Dijits is never outputted.</p>
<p>The solution is to simply move all your dijit creation code to the top of the page or to move the output of the dojo helper to the bottom. My advice is using the first option, simply because if you output it at the bottom you get to see the un dijitized html for a brief moment which is not nice.</p>
<p>Here is the working code for the borderContainer Layout in a Zend_Layout</p>
<pre class="brush: php;">
&lt; ?php
$this-&gt;addHelperPath('Zend/Dojo/View/Helper/', 'Zend_Dojo_View_Helper');
$this-&gt;dojo()-&gt;setLocalPath('/admin/scripts/dojo/dojo.js')
		     -&gt;addStyleSheetModule('dijit.themes.tundra');

$this-&gt;borderContainer()-&gt;captureStart('masterLayout',
                                       array('design' =&gt; 'headline'),
									   array('style' =&gt; 'width: 100%; height: 100%'));

	$this-&gt;contentPane()-&gt;captureStart('leftPane',
									   array('region' =&gt; 'left', 'splitter' =&gt; true),
									   array('style' =&gt; 'width: 200px'));

		if (Zend_Auth::getInstance()-&gt;hasIdentity()):?&gt;
		&lt;ul id=&quot;navigation&quot; style=&quot;margin: 0&quot;&gt;
			&lt;li&gt;&lt;a href=&quot;/admin/pages&quot;&gt;Pages&lt;/a&gt;&lt;/li&gt;
			&lt;li&gt;&lt;a href=&quot;/admin/auth/logout&quot;&gt;Logout&lt;/a&gt;&lt;/li&gt;
		&lt;/ul&gt;
		&lt; ?
		endif;

	echo $this-&gt;contentPane()-&gt;captureEnd('leftPane');

	$this-&gt;contentPane()-&gt;captureStart('contentPane',
									   array('region' =&gt; 'center'),
									   array());

		echo $this-&gt;layout()-&gt;content;

	echo $this-&gt;contentPane()-&gt;captureEnd('contentPane');

$data = $this-&gt;borderContainer()-&gt;captureEnd('masterLayout');

$this-&gt;headLink()-&gt;appendStylesheet($this-&gt;autover('/admin/css/style.css'));

$this-&gt;headTitle()-&gt;setSeparator(' :: ');
$this-&gt;headTitle()-&gt;append('Skyrocket Admin');

echo $this-&gt;doctype() ?&gt;
&lt;html xmlns=&quot;http://www.w3.org/1999/xhtml&quot;&gt;
&lt;head&gt;
	&lt; ?= $this-&gt;headTitle() ?&gt;
	&lt; ?= $this-&gt;headLink() ?&gt;
	&lt; ?= $this-&gt;headStyle() ?&gt;
	&lt; ?= $this-&gt;headScript() ?&gt;
	&lt; ?= $this-&gt;dojo() ?&gt;
&lt;/head&gt;
&lt;body class=&quot;tundra&quot;&gt;

	&lt; ?= $data ?&gt;

&lt;/body&gt;
&lt;/html&gt;
</pre>
<p>I hope this helps at least some of you out, and if there are any questions or remarks i&#8217;d be glad to hear them!</p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2009/02/11/dojo-dijits-in-zend_layout/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Admin CMS routes in Zend Framework</title>
		<link>http://www.skyrocket.be/2009/01/11/admin-cms-routes-in-zend-framework/</link>
		<comments>http://www.skyrocket.be/2009/01/11/admin-cms-routes-in-zend-framework/#comments</comments>
		<pubDate>Sun, 11 Jan 2009 22:57:15 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdevelopment]]></category>
		<category><![CDATA[Zend Framework]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/?p=115</guid>
		<description><![CDATA[For some time now I&#8217;ve been pondering on how to implement a CMS in the websites I build using Zend Framework, there are several options available around the internet. Here I&#8217;m going to explain how I solved this issue and why this is my preferred way of working.
No custom routing for me sir
One of the [...]]]></description>
			<content:encoded><![CDATA[<p>For some time now I&#8217;ve been pondering on how to implement a <abbr title="Content Management System">CMS</abbr> in the websites I build using <a href="http://framework.zend.com" class="extlink">Zend Framework</a>, there are several options available around the internet. Here I&#8217;m going to explain how I solved this issue and why this is my preferred way of working.</p>
<h2>No custom routing for me sir</h2>
<p>One of the solutions I found involved creating a separate module for each part of your website that requires administration (eg: news, blog, products, &#8230;). Then you can easily access the admin for each module. For example to access the news admin you would point your browser to <code>domain.com/news/admin</code>. </p>
<p>At this point this solution has one drawback and that is the <abbr title="Uniform Resource Locator">URL</abbr> structure, while for some people this doesn&#8217;t really pose a problem, I always like to have the part that identifies the CMS as first part of my URL. <code>domain.com/admin/news</code> instead of <code>domain.com/news/admin</code>. You could however solve this by creating some routes, but I still didn&#8217;t feel happy about this solution.</p>
<p>While this might be a good solution when you are building a CMS with plug-and-play modules where all code is contained in one module, this solution wasn&#8217;t really what I was looking for. I would rather have all my CMS code close together, preferable in a separate environment from my front-end website.</p>
<h2>Modules</h2>
<p>The solution I found most suited and flexible to use was creating a separate <a href="http://framework.zend.com/manual/en/zend.controller.modular.html" class="extlink">module</a> for both the front-end and the back-end. This allows you to separate your business code from the CMS from your front-end while still being able to use common models for data access and manipulation.</p>
<p>The automatically registered Zend_Controller_Router_Route_Module route takes care of routing the request to the appropriate module or to the default module if no module has been specified.</p>
<p>My directory layout looks something like this. </p>
<p><img src="http://www.skyrocket.be/wp-content/uploads/2009/01/adminmodulelayout.png" alt="Admin module directory Layout" title="Admin module directory Layout" width="198" height="468" class="alignnone size-full wp-image-119" /></p>
<p>You are ofcourse free to use whatever layout works for you, the most important part is that you have at least a <strong>frontend</strong> and <strong>admin</strong> module.<br />
You&#8217;ll also notice i&#8217;ve split up the public directory to separate the public assets for the admin and frontend modules, keeps everything nice and tidy.</p>
<p>Next up is configuring the <a href="http://framework.zend.com/manual/en/zend.controller.front.html" class="extlink">Front Controller</a> to use modules which is quite easy.</p>
<pre class="brush: php;">
$frontController = Zend_Controller_Front::getInstance();
$frontController-&gt;addModuleDirectory(APP_PATH.'/modules');
$frontController-&gt;setDefaultModule('frontend');
</pre>
<p>In the code above we tell the Front Controller where to find the modules and which module to use when none has been specified in the request or when none is found. Pretty basic and it works!<br />
Just put all your CMS specific controllers in the admin module, and all front-end controllers in the frontend module.</p>
<p>But wouldn&#8217;t it be nice if we could also separate our <a href="http://framework.zend.com/manual/en/zend.layout.html" class="extlink">Zend_Layout</a>&#8217;s, so we have a separate layout for our front-end and admin area&#8217;s and the files for these are contained in the respective module directories? This is where <a href="http://framework.zend.com/manual/en/zend.controller.plugins.html" class="extlink">Controller plugins</a> come in handy.</p>
<pre class="brush: php;">
/**
 * Controller plugin that sets the correct paths to the Zend_Layout and
 * Zend_Controller_Plugin_errorHandler instances
 *
 * @package    Skyrocket_Plugin
 * @copyright  Copyright (c) 2005-2008 Skyrocket Concepts (http://www.skyrocket.be)
 */
class Skyrocket_Plugin_Adminsetup extends Zend_Controller_Plugin_Abstract
{
	public function dispatchLoopStartup(Zend_Controller_Request_Abstract $request)
	{
		// Set the layout directory for the loaded module
		$layoutPath = APP_PATH . '/modules/' . $request-&gt;getModuleName() . '/layouts/scripts/';
		Zend_Layout::getMvcInstance()-&gt;setLayoutPath($layoutPath);

		// Configure the error plugin to use the loaded module
		// so we can use module-specific error handling
		$frontController = Zend_Controller_Front::getInstance();
		$errorPlugin     = $frontController-&gt;getPlugin('Zend_Controller_Plugin_ErrorHandler');
		$errorPlugin-&gt;setErrorHandlerModule($request-&gt;getModuleName());
	}

}
</pre>
<p>Create a class file like the one above and register the plugin instance with the Front Controller like this:</p>
<pre class="brush: php;">
$frontController-&gt;registerPlugin(new Skyrocket_Plugin_Adminsetup());
</pre>
<p>The Adminsetup plugin intercepts the request before the Front Controller dispatches and modifies the Zend_Layout path to the current module&#8217;s Layout directory. It also registers a separate error handler for the admin module in case you want to handle your errors separately from your front-end errors.</p>
<h2>What if I still want to use modules for my front-end?</h2>
<p>I can hear some of you asking: <em>But what if i&#8217;m building a huge website, with a huge amount of business logic? This is what modules really were made for but you are forcing me to use only one module for all my front-end controllers? Does this mean that I should stuff all the code for my forum in one gigantic controller in my frontend module?</em></p>
<p>No, not really, you still are free to use modules as you please. Feel free to create a forum module with a TopicController, ForumController, PostController and a CategoryController. These modules still work as expected and are accessible via <code>domain.com/forum/topic</code></p>
<h2>Conclusion</h2>
<p>See, no funky routing configuration, no numerous admin controllers spead out over dozens of modules, all your admin controllers and layouts are nicely contained within one admin module and you are still able to separate all your code in individual modules or all into one frontend module. The choice is yours.</p>
<p>That&#8217;s it for now folks, any remarks, questions or do you think you are using a better method, feel free to comment.</p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2009/01/11/admin-cms-routes-in-zend-framework/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Overschakelen op ubuntu</title>
		<link>http://www.skyrocket.be/2009/01/06/overschakelen-op-ubuntu/</link>
		<comments>http://www.skyrocket.be/2009/01/06/overschakelen-op-ubuntu/#comments</comments>
		<pubDate>Tue, 06 Jan 2009 22:59:54 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[Applicaties]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/?p=105</guid>
		<description><![CDATA[Terwijl Jan de overschakeling naar Mac aan het doen is heb ik thuis de beslissing genomen om op Linux, meer bepaald Ubuntu, over te schakelen. 
Niet dat ik niet tevreden ben van Windows XP, er zijn de kleine frustraties van windows maar in vergelijking met Vista ben ik nog steeds zeer tevreden van XP. Maar [...]]]></description>
			<content:encoded><![CDATA[<p>Terwijl <a href="http://www.inventis.be/blog/overschakelen-naar-een-mac-is-niet-zo-gemakkelijk" class="extlink">Jan de overschakeling naar Mac aan het doen</a> is heb ik thuis de beslissing genomen om op Linux, meer bepaald <a href="http://www.ubuntu.com" class="extlink">Ubuntu</a>, over te schakelen. </p>
<p>Niet dat ik niet tevreden ben van Windows XP, er zijn de kleine frustraties van windows maar in vergelijking met Vista ben ik nog steeds zeer tevreden van XP. Maar linux lijkt me echter een zoveel betere omgeving om <a href="http://www.skyrocket.be/category/webdevelopment/">webontwikkeling</a> in te doen dan Windows dus is de beslissing snel gemaakt. En extra kennis van linux is mooi meegenomen, ik kan mijn plan wel trekken via <abbr title="Secure SHell (encrypted protocol replaces telnet and FTP)">SSH</abbr> maar vlot gaat toch anders, maar daar komt zeer binnekort verandering in dus <img src='http://www.skyrocket.be/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Installatie ging erg vlot, Ubuntu downloaden, op <abbr title="Universal Serial Bus">USB</abbr> stick zetten en installeren is een kwestie van een kwartiertje werk. En alles werkt vlot, drivers worden herkend, netwerk en internet werken out of the box, wat wil je nog meer? Ontwikkeltools natuurlijk!</p>
<p>En daar komt Apt in het spel, eclipse installeren is een kwestie van de terminal open gooien en <code>apt-get install eclipse</code> uit te voeren en even later is eclipse klaar voor gebruik. Apt is zeker en vast de grootste meerwaarde voor Ubuntu. Daarna de Aptana plugin voor eclipse installeren en de IDE is klaar voor gebruik.</p>
<p>Een dev server installeren gaat even makkelijk, <code>apt-get install apache2</code>, daarna svn, php5, <abbr title="My Server Query Language - A database management system">MySQL</abbr> en phpmyadmin nog, een paar virtual servers aanmaken in apache en de ontwikkelomgeving is klaar.</p>
<p>Nu <a href="http://framework.zend.com" class="extlink">Zend framework</a> nog downloaden en we kunnen beginnen!</p>
<p>Linux, i&#8217;m starting to love it <img src='http://www.skyrocket.be/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2009/01/06/overschakelen-op-ubuntu/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Wat brengt 2008?</title>
		<link>http://www.skyrocket.be/2008/01/06/wat-brengt-2008/</link>
		<comments>http://www.skyrocket.be/2008/01/06/wat-brengt-2008/#comments</comments>
		<pubDate>Sun, 06 Jan 2008 12:01:24 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[Skyrocket]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/2008/01/06/wat-brengt-2008/</guid>
		<description><![CDATA[Het nieuwe jaar is er en nu is het tijd om wat goede voornemens te formuleren. Ik ga niet zoals op een dozijn andere blogs een lijstje met &#8216;wat wil ik in 2008 bereiken&#8217; maken maar heb maar direct de koe bij de horens gevat.
Wiigames.be, mijn blog die uitgroeide tot de meest bezochte website over [...]]]></description>
			<content:encoded><![CDATA[<p>Het nieuwe jaar is er en nu is het tijd om wat <strong>goede voornemens</strong> te formuleren. Ik ga niet zoals op een dozijn andere blogs een lijstje met &#8216;wat wil ik in 2008 bereiken&#8217; maken maar heb maar direct de koe bij de horens gevat.</p>
<p><a href="http://www.wiigames.be" class="extlink">Wiigames.be</a>, mijn blog die uitgroeide tot de meest bezochte website over de Wii in België is <strong>verkocht</strong>. De deal moet nog gesloten worden maar er is reeds een mondeling akkoord met 9Lives. Binnenkort eens naar de games afdeling van Telenet in Mechelen rijden met de nodige documenten en dan is de deal rond.</p>
<p>Stilaan beginnen we dan ook al aan een <strong>volgend, voorlopig geheim, project</strong> te denken en daar hoort de nodige planning bij. De eerste regels van het design document zijn reeds geschreven, het <a href="http://framework.zend.com/" class="extlink">framework</a> staat klaar om mee te beginnen ontwikkelen. Alleen het grafisch gedeelte moet nog bepaald worden maar dat is iets voor wanneer het design document klaar is.</p>
<p>En om alles vlot, correct en optimaal te laten verlopen heb ik maar wat geinvesteerd in een nieuwe PC die er binnekort aankomt, een fatsoenlijke IDE voor de ontwikkeling van het nieuwe project (<a href="http://www.aptana.com/" class="extlink">Aptana Studio 1.0 Professional</a>) en de volgende boeken:</p>
<ul>
<li><strong>Getting Things Done</strong>: The art of Stress-free productivity</li>
<li><strong>Call to Action</strong>: Secret formulas to Improve Online Results</li>
<li><strong>My Start-up life</strong>: What a (very) young CEO learned on his journey through Silicon Valley</li>
<li><strong>The Long Tail</strong>: Why the future of business is Selling less of More.</li>
</ul>
<p>Dat zal normaal wel genoeg leesvoer zijn voor de eerste 2 maanden van 2008.<br />
Iemand nog suggesties voor boeken? Laat gerust weten!</p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2008/01/06/wat-brengt-2008/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Javascript goodness</title>
		<link>http://www.skyrocket.be/2007/01/18/javascript-goodness/</link>
		<comments>http://www.skyrocket.be/2007/01/18/javascript-goodness/#comments</comments>
		<pubDate>Thu, 18 Jan 2007 22:52:36 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[Web 2.0]]></category>
		<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/?p=83</guid>
		<description><![CDATA[In the past few days anybody who really digs javascript (and the inevitable Ajax) should have noticed these two announcements. And if you haven&#8217;t now you have!

http://prototypejs.org launched along with the final version of Prototype.js v1.5. Finally a decent site for the prototype framework which still is one of my favourite javascript frameworks. The site [...]]]></description>
			<content:encoded><![CDATA[<p>In the past few days anybody who really digs javascript (and the inevitable <abbr title="Asynchronous JavaScript and XML">Ajax</abbr>) should have noticed these two announcements. And if you haven&#8217;t now you have!</p>
<ul>
<li><a href="http://prototypejs.org/" title="Prototype JS website" class="extlink">http://prototypejs.org</a> launched along with the final version of Prototype.js v1.5. Finally a decent site for the prototype framework which still is one of my favourite javascript frameworks. The site offers good tutorials and finally some <a href="http://prototypejs.org/api" title="Prototype API docs" class="extlink">more than decent <abbr title="Application Programming Interface">API</abbr> documentation</a> since that was the only thing prototype was lacking.</li>
<li>Also Joe Hewitt, the creator of the famous and absolutely fantastic Firebug plugin for Firefox, took the time to write a <a href="http://www.ddj.com/196802787" title="Firebug debugging" class="extlink">debugging tutorial for Dr. Dobb&#8217;s</a>. Be sure to check it out if you are somewhat into professional Javascripting.</li>
</ul>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2007/01/18/javascript-goodness/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Feweb congres 3.0</title>
		<link>http://www.skyrocket.be/2006/12/11/feweb-congres-30/</link>
		<comments>http://www.skyrocket.be/2006/12/11/feweb-congres-30/#comments</comments>
		<pubDate>Mon, 11 Dec 2006 20:11:59 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/2006/12/11/feweb-congres-30/</guid>
		<description><![CDATA[I&#8217;ll be attending the Feweb Congres 3.0 this thursday in Edegem Belgium along with my colleagues at Inventis Web Architects. If you&#8217;ll be there, just drop a comment!]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll be attending the <a href="http://feweb.be/fewebcongres_feweb3.0.html" class="extlink">Feweb Congres 3.0</a> this thursday in Edegem Belgium along with my colleagues at <a href="http://www.inventis.be" class="extlink">Inventis Web Architects</a>. If you&#8217;ll be there, just drop a comment!</p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2006/12/11/feweb-congres-30/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>The hell that is mod_rewrite infinity!</title>
		<link>http://www.skyrocket.be/2006/11/22/the-hell-that-is-mod_rewrite-infinity/</link>
		<comments>http://www.skyrocket.be/2006/11/22/the-hell-that-is-mod_rewrite-infinity/#comments</comments>
		<pubDate>Wed, 22 Nov 2006 22:41:12 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/?p=80</guid>
		<description><![CDATA[Apache&#8217;s Mod_rewrite module has always been a difficult part of webdevelopment for me, wether it is because of it&#8217;s extensive use of regular expressions (which I finally master after several years of staring at regex tutorials) or the lack of response you get when something goes wrong. At work we use mod_rewrite on almost each [...]]]></description>
			<content:encoded><![CDATA[<p>Apache&#8217;s Mod_rewrite module has always been a difficult part of webdevelopment for me, wether it is because of it&#8217;s extensive use of regular expressions (which I finally master after several years of staring at regex tutorials) or the lack of response you get when something goes wrong. At work we use mod_rewrite on almost each project thus having a stable and solid base of rules to start from is a must.</p>
<p>Recently we decided it was time to implement something new with mod_rewrite i&#8217;ve been thinking about for a long time. <a href="http://lotsofphp.com/tutorials/rewritten-urls-unlimited-parameters.html" class="extlink">Rewritten URLs with unlimited parameters by Ruben K</a>. This allows me to rewrite a long and complex request <abbr title="Uniform Resource Locator">URL</abbr> into as many $_GET variables I need by using a simple <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> function. I&#8217;m not going to discuss the details here since thats something the tutorial by Ruben K. already does but let me tell you one thing &#8230; Ruben forgot something.</p>
<p>On a recent project I noticed that the debugger instance I was running in index.php got called several times while I only requested the page once. Strange no? The cause was quickly found &#8230; mod_rewrite! Finding the solutions took me weeks &#8230;</p>
<p>This rule is suggested by Rubens tutorial</p>
<p><code>RewriteRule ^(.*)\.html$ index.php?string=$1</code></p>
<p>The problem here is that ANYTHING gets rewritten to index.php &#8230; including broken images and other includes that should normally trigger a 404. Well &#8220;just fix your broken images&#8221; you&#8217;d say and yes you are right, but there are 2 problems with that. We can&#8217;t count on our client inserting only valid image links in our <abbr title="Content Management System">CMS</abbr>. And second, firefox and other browsers have a habit of requesting favicon.ico several times during the loading of a page and guess what &#8230; if you don&#8217;t have a favicon it gets rewritten to index.php too!</p>
<p>I don&#8217;t need to tell you that this results in serious overload. I tried the modrewrite.com and sitepoint.com forums but nobody could give me a solid solutions until I found it myself. With a simple rewrite condition we are going to check if the url requested is a file that is not found and if so we rewrite to an error page. The final .htaccess looks like this, with the newly added rule in bold:</p>
<p><code>RewriteEngine on<br />
	RewriteCond %{SCRIPT_FILENAME} -f [OR]<br />
	RewriteCond %{SCRIPT_FILENAME} -d<br />
	RewriteRule .* - [L]<br />
	<strong>RewriteCond %{SCRIPT_FILENAME} !-f<br />
	RewriteRule ^(.+)\.[a-zA-Z0-9]{3,}$ /error.php [L]</strong><br />
	RewriteRule ^(.*)$ /index.php?string=$1 [L]<br />
</code></p>
<p>This fixed alot of problems we previously had with several sites and never knew where to look &#8230; mod_rewrite was to blame.</p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2006/11/22/the-hell-that-is-mod_rewrite-infinity/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Webdeveloper survey</title>
		<link>http://www.skyrocket.be/2006/09/05/webdeveloper-survey/</link>
		<comments>http://www.skyrocket.be/2006/09/05/webdeveloper-survey/#comments</comments>
		<pubDate>Tue, 05 Sep 2006 20:45:03 +0000</pubDate>
		<dc:creator>Chris R.</dc:creator>
				<category><![CDATA[Webdesign]]></category>
		<category><![CDATA[Webdevelopment]]></category>

		<guid isPermaLink="false">http://www.skyrocket.be/2006/09/05/webdeveloper-survey/</guid>
		<description><![CDATA[Sitepoint has recently teamed up with Ektron to have their members participate in an online survey about webdevelopment in it&#8217;s broadest meaning. The results are in, processed and now made available in PDF at the sitepoint website. If you own or run a webdesign/development business or if you work at one this is a very [...]]]></description>
			<content:encoded><![CDATA[<p>Sitepoint has recently teamed up with Ektron to have their members participate in an online survey about webdevelopment in it&#8217;s broadest meaning. The results are in, processed and now <a href="http://www.sitepoint.com/report2006/state_of_web_development_results.pdf" class="extlink">made available in <abbr title="Portable Document Format">PDF</abbr></a> at the sitepoint website. If you own or run a webdesign/development business or if you work at one this is a very interesting read.</p>]]></content:encoded>
			<wfw:commentRss>http://www.skyrocket.be/2006/09/05/webdeveloper-survey/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
