<?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>devexp &#187; Languages</title>
	<atom:link href="http://www.devexp.eu/category/devexp/languages/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.devexp.eu</link>
	<description>DEVelopment EXPerience, shared with the world!</description>
	<lastBuildDate>Fri, 28 Oct 2011 12:07:45 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>How to use a symfony 1 layout from a different directory</title>
		<link>http://www.devexp.eu/2011/10/28/how-to-use-a-symfony-1-layout-from-a-different-directory/</link>
		<comments>http://www.devexp.eu/2011/10/28/how-to-use-a-symfony-1-layout-from-a-different-directory/#comments</comments>
		<pubDate>Fri, 28 Oct 2011 11:48:36 +0000</pubDate>
		<dc:creator>Van de Voorde Toni</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Tips and Tricks]]></category>
		<category><![CDATA[plugin]]></category>
		<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=1042</guid>
		<description><![CDATA[In symfony 1 it is possible to have different layouts for an application. But they all have to be put into the directory &#8216;myproject/apps/frontend/templates/&#8217;. But what if you want to use a layout from another location? Assume you make a &#8230; <a href="http://www.devexp.eu/2011/10/28/how-to-use-a-symfony-1-layout-from-a-different-directory/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><a href="http://www.devexp.eu/wp-content/uploads/2009/04/symfony.jpg"><img src="http://www.devexp.eu/wp-content/uploads/2009/04/symfony.jpg" alt="" title="Symfony" width="127" height="35" class="alignright size-full wp-image-727" /></a>In symfony 1 it is possible to have different layouts for an application. But they all have to be put into the directory &#8216;myproject/apps/frontend/templates/&#8217;. But what if you want to use a layout from another location? </p>
<p>Assume you make a plugin with a specific layout, it would be nice to load the layout from the plugin directory, and not to have to copy the file to the global directory.</p>
<p>Here is how you can achieve this:</p>
<pre class="brush: php; title: ; notranslate">
$template = $this-&gt;getContext()-&gt;getConfiguration()-&gt;getTemplateDir('MODULE', 'LAYOUT_FILE.php');
$this-&gt;setLayout($template . '/LAYOUT_FILE');
</pre>
<p>Let&#8217;s say you have the following:</p>
<pre class="brush: plain; title: ; notranslate">
my_project/
  plugins/
    my_plugin/
      modules/
        MyUser/
          actions/
            actions.php
          templates/
            indexSuccess.php
            MyUserLayout.php
</pre>
<p>The actions.php class could be something like this:</p>
<pre class="brush: php; title: ; notranslate">
class MyUserAction extends sfActions {

  public function preExecute() {
    $template = $this-&gt;getContext()-&gt;getConfiguration()-&gt;getTemplateDir('MyUser', 'MyUserLayout.php');

    $this-&gt;setLayout($template . '/MyUserLayout');
  }

  public function executeIndex() {

  }
}
</pre>
<p>Have fun!</p>
<div class="shr-publisher-1042"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2011/10/28/how-to-use-a-symfony-1-layout-from-a-different-directory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Read from Excel in ASP</title>
		<link>http://www.devexp.eu/2009/10/14/read-from-excel-in-asp/</link>
		<comments>http://www.devexp.eu/2009/10/14/read-from-excel-in-asp/#comments</comments>
		<pubDate>Wed, 14 Oct 2009 10:14:28 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[ASP]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[excel]]></category>
		<category><![CDATA[read]]></category>
		<category><![CDATA[vb]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=998</guid>
		<description><![CDATA[I always had a hard time finding correct documentation on the old ASP (active server pages) language and I needed it one more time in the last few days to create a script that read from an excel file. As &#8230; <a href="http://www.devexp.eu/2009/10/14/read-from-excel-in-asp/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>I always had a hard time finding correct documentation on the old ASP (active server pages) language and I needed it one more time in the last few days to create a script that read from an excel file.</p>
<p>As I believe that it might be handy for a handful of people around the world (is there actually anybody else still developing in ASP these days?), I hereby share my little piece of code with you guys.</p>
<p>Any suggestions or comments are always welcome.</p>
<p>In my example we read from an excel file that has 1 small table that has 1000 lines and columns from A until G.<br />
The first row contains all the column names.</p>
<pre class="brush: vb; title: ; notranslate">
'initialize variables
Dim objConn, strSQL
Dim x

Set objConn = Server.CreateObject(&quot;ADODB.Connection&quot;)
objConn.Open &quot;DRIVER={Microsoft Excel Driver (*.xls)}; IMEX=1; HDR=NO; &quot;&amp;_
 &quot;Excel 8.0; DBQ=&quot; &amp; Server.MapPath(&quot;filename.xls&quot;) &amp; &quot;; &quot;
strSQL = &quot;SELECT * FROM A1:G1000&quot;

Response.Write(&quot;&lt;table border=&quot;&quot;1&quot;&quot;&gt;&quot;)
Response.Write(&quot;&lt;tr&gt;&quot;)
'write all columnNames
For x=0 To objRS.Fields.Count-1
 Response.Write(&quot;&lt;th&gt;&quot; &amp; objRS.Fields(x).Name &amp; &quot;&lt;/th&gt;&quot;)
Next
Response.Write(&quot;&lt;/tr&gt;&quot;)

Do Until objRS.EOF

' write as much columns as there are in your excel file
Response.Write(&quot;&lt;td&gt;&quot; &amp; objRS.Fields(0).Value &amp; &quot;&lt;/td&gt;&quot;)
Response.Write(&quot;&lt;td&gt;&quot; &amp; objRS.Fields(1).Value &amp; &quot;&lt;/td&gt;&quot;)
Response.Write(&quot;&lt;td&gt;&quot; &amp; objRS.Fields(2).Value &amp; &quot;&lt;/td&gt;&quot;)
Response.Write(&quot;&lt;td&gt;&quot; &amp; objRS.Fields(3).Value &amp; &quot;&lt;/td&gt;&quot;)
Response.Write(&quot;&lt;td&gt;&quot; &amp; objRS.Fields(4).Value &amp; &quot;&lt;/td&gt;&quot;)
Response.Write(&quot;&lt;td&gt;&quot; &amp; objRS.Fields(5).Value &amp; &quot;&lt;/td&gt;&quot;)
Response.Write(&quot;&lt;td&gt;&quot; &amp; objRS.Fields(6).Value &amp; &quot;&lt;/td&gt;&quot;)

objRS.Close

Response.Write(&quot;&lt;/table&gt;&quot;)

Set objRS=Nothing
</pre>
<div class="shr-publisher-998"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/10/14/read-from-excel-in-asp/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>How to force symfony colors on windows with PuttyCyg?</title>
		<link>http://www.devexp.eu/2009/09/22/how-to-force-symfony-colors-on-windows-with-cygwinputtycyg/</link>
		<comments>http://www.devexp.eu/2009/09/22/how-to-force-symfony-colors-on-windows-with-cygwinputtycyg/#comments</comments>
		<pubDate>Tue, 22 Sep 2009 13:18:14 +0000</pubDate>
		<dc:creator>Van de Voorde Toni</dc:creator>
				<category><![CDATA[Framework]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[tips]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=936</guid>
		<description><![CDATA[Those of you who’re developing with symfony under windows will have noticed that, when running tasks in the command prompt, no colors are used. This is because the windows command prompt isn’t compatible with the color notation. Most of you &#8230; <a href="http://www.devexp.eu/2009/09/22/how-to-force-symfony-colors-on-windows-with-cygwinputtycyg/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Those of you who’re developing with symfony under windows will have noticed that, when running tasks in the command prompt, no colors are used. This is because the windows command prompt isn’t compatible with the color notation.<br />
Most of you also have <a href="http://www.cygwin.com/">cygwin</a> installed (shame on you if you didn’t :p). But even if you run the tasks through “<a href="http://code.google.com/p/puttycyg/">PuttyCyg</a>”, which is fully compatible with the color notation, you will not benefit from the colors. </p>
<p>Why?</p>
<p><span id="more-936"></span><br />
The problem resides in the symfony class “sfAnsiColorFormatter” in the method “supportsColors($stream)”:</p>
<pre class="brush: php; title: ; notranslate">
  /**
   * Returns true if the stream supports colorization.
   *
   * Colorization is disabled if not supported by the stream:
   *
   *  -  windows
   *  -  non tty consoles
   *
   * @param mixed $stream A stream
   *
   * @return Boolean true if the stream supports colorization, false otherwise
   */
  public function supportsColors($stream)
  {
    return DIRECTORY_SEPARATOR != '\\' &amp;&amp; function_exists('posix_isatty') &amp;&amp; @posix_isatty($stream);
  }
</pre>
<p>The method supportsColors($stream) decides whether or not colors are supported. And as you can see, one of the checks is the directory separator which in our case will always return false because we are on a windows operating system. So even if you run tasks through puttycyg the directory separator will remain the same.</p>
<p><strong>Possibility 1</strong></p>
<p>If you always work through the puttycyg you could simply set the method to always return true, but in a command prompt it will look like this:<br />
<div id="attachment_946" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.devexp.eu/wp-content/uploads/2009/09/command_output.png"><img src="http://www.devexp.eu/wp-content/uploads/2009/09/command_output-300x236.png" alt="Dos Command Output" title="Dos Command Output" width="300" height="236" class="size-medium wp-image-946" /></a><p class="wp-caption-text">Dos Command Output</p></div></p>
<p><strong>Possibility 2</strong></p>
<p>Detect if cygwin is used. This way when you use the dos command the output will work and when cygwin is used you&#8217;ll have the colors <img src='http://www.devexp.eu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p>I checked the $_SERVER array to find something that could help me to distinguish the cygwin prompt with the dos prompt, and I found that the &#8216;PWD&#8217; key is only available on *nix shells. And when I print the value of $_SERVER['PWD'] in the cygwin prompt it gives me &#8220;/cygdrive/f/sandbox/adlogix/branch-3.2/frontend&#8221;. </p>
<p>Knowing that, here is how we can change the supportsColors method:</p>
<pre class="brush: php; title: ; notranslate">
  /**
   * Returns true if the stream supports colorization.
   *
   * Colorization is disabled if not supported by the stream:
   *
   *  -  windows
   *  -  non tty consoles
   *
   * @param mixed $stream A stream
   *
   * @return Boolean true if the stream supports colorization, false otherwise
   */
  public function supportsColors($stream)
  {
    $supported = DIRECTORY_SEPARATOR != '\\' &amp;&amp; function_exists('posix_isatty') &amp;&amp; @posix_isatty($stream);

    return $supported ? true : !is_bool(strpos(@$_SERVER['PWD'], &quot;/cygdrive&quot;));
  }
</pre>
<p>What I did, is still using the check symfony used, but when it returns false I do a second check to see if the $_SERVER['PWD'] exists and that it contains the String &#8220;/cygdrive&#8221;.</p>
<p>Now when I run the taks through cygwin I get the colors and when I run it in dos it displays correctly.<br />
<div id="attachment_950" class="wp-caption aligncenter" style="width: 310px"><a href="http://www.devexp.eu/wp-content/uploads/2009/09/puttycyg-versus-dos.png"><img src="http://www.devexp.eu/wp-content/uploads/2009/09/puttycyg-versus-dos-300x187.png" alt="PuttyCyg versus Dos" title="PuttyCyg versus Dos" width="300" height="187" class="size-medium wp-image-950" /></a><p class="wp-caption-text">PuttyCyg versus Dos</p></div></p>
<p>I only tested it on my machine, so if you have troubles or a better way to do it, please let me know <img src='http://www.devexp.eu/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> .</p>
<p><strong>Update:</strong> This is only tested with symfony 1.2 and as from sf 1.3 there will be an option &#8211;color to force the colors.</p>
<p><strong>Update:</strong> For some reason it does not work in the cygwin bash shell. When I set the message manually (echo -e &#8220;\033[31mHello World\033[0m&#8221;) in the command the colors appear, but through symfony not.  I suspect that the cygwin bash shell miss interprets the returns of php, but I have no idea why it does work on puttyCyg (which only launches the cygwin shell) &#8230; probably some startup configuration of the bash ?!</p>
<div class="shr-publisher-936"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/09/22/how-to-force-symfony-colors-on-windows-with-cygwinputtycyg/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>html 5 experiment</title>
		<link>http://www.devexp.eu/2009/08/06/html-5-experiment/</link>
		<comments>http://www.devexp.eu/2009/08/06/html-5-experiment/#comments</comments>
		<pubDate>Thu, 06 Aug 2009 11:12:51 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[9elements]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=867</guid>
		<description><![CDATA[This is super cool!!!! 9Elements created a completely html page containing nothing more then Javascript and some of the tags that are created in the new HTML version. This is really amazing as it is really the first time that &#8230; <a href="http://www.devexp.eu/2009/08/06/html-5-experiment/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="alignright size-medium wp-image-868" title="html5-canvas-particles2" src="http://www.devexp.eu/wp-content/uploads/2009/08/html5-canvas-particles2-300x109.png" alt="html5-canvas-particles2" width="300" height="109" />This is super cool!!!!</p>
<p>9Elements created a completely html page containing nothing more then Javascript and some of the tags that are created in the new HTML version.</p>
<p>This is really amazing as it is really the first time that I see a website that does some things I thought could only be done with Flash. I m overwhelmed with it an I suggest you take a look at it!! Be sure to look at it in an advanced browser ( Google Chrome 3.0, Safari 4 or the latest Firefox 3.5 version).</p>
<p><a href="http://9elements.com/io/projects/html5/canvas/" target="_blank">LOOK AT IT NOW</a></p>
<div class="shr-publisher-867"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/08/06/html-5-experiment/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>The future of Web: HTML 5 by Google</title>
		<link>http://www.devexp.eu/2009/07/20/the-future-of-web-html-5-by-google/</link>
		<comments>http://www.devexp.eu/2009/07/20/the-future-of-web-html-5-by-google/#comments</comments>
		<pubDate>Mon, 20 Jul 2009 07:43:47 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[html5]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=855</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/AusOPz8Ww80&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.youtube.com/v/AusOPz8Ww80&#038;color1=0xb1b1b1&#038;color2=0xcfcfcf&#038;hl=en&#038;feature=player_embedded&#038;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" allowScriptAccess="always" width="425" height="344"></embed></object></p>
<div class="shr-publisher-855"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/07/20/the-future-of-web-html-5-by-google/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>an infinite image carousel</title>
		<link>http://www.devexp.eu/2009/06/17/an-infinite-image-carousel/</link>
		<comments>http://www.devexp.eu/2009/06/17/an-infinite-image-carousel/#comments</comments>
		<pubDate>Wed, 17 Jun 2009 06:23:54 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[Jquery]]></category>
		<category><![CDATA[Layout]]></category>
		<category><![CDATA[carousel]]></category>
		<category><![CDATA[image]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=822</guid>
		<description><![CDATA[One of my favorite blogs is that of jQuery 4 Designers and this time he created a cool tutorial on how to create one with jQuery. It has always been a struggle to create a nice carousel but i think &#8230; <a href="http://www.devexp.eu/2009/06/17/an-infinite-image-carousel/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>One of my favorite blogs is that of jQuery 4 Designers and this time he created a cool tutorial on how to create one with jQuery.</p>
<p>It has always been a struggle to create a nice carousel but i think this guy managed to create a real cool one. Also one of the most interesting things about this website is that all the code he writes in jQuery also works after disabling JavaScript. Try it!</p>
<p><embed src='http://jqueryfordesigners.com/downloads/player-viral.swf' height='420' width='570' allowscriptaccess='always' allowfullscreen='true' flashvars='file=http%3A%2F%2Fjqueryfordesigners.com%2Fmedia%2Finfinite-carousel.flv&#038;plugins=viral-1d'/></p>
<p>for more information and other cool tutorials you can visit his website: <a href="http://jqueryfordesigners.com/" target="_blank">jQuery4Designers</a></p>
<div class="shr-publisher-822"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/06/17/an-infinite-image-carousel/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>the future of web development</title>
		<link>http://www.devexp.eu/2009/05/28/the-future-of-web-development/</link>
		<comments>http://www.devexp.eu/2009/05/28/the-future-of-web-development/#comments</comments>
		<pubDate>Thu, 28 May 2009 11:14:59 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Javascript]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[html 5]]></category>
		<category><![CDATA[JavaScript 2.0]]></category>
		<category><![CDATA[john resig]]></category>
		<category><![CDATA[Jon Von Tetzchner]]></category>
		<category><![CDATA[PHP 6]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=810</guid>
		<description><![CDATA[It is always hard to tell what the future will bring, especially in a world where everything is evolving so quickly. But it&#8217;s always good to know what libraries, languages or applications will influence the way we work or the &#8230; <a href="http://www.devexp.eu/2009/05/28/the-future-of-web-development/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>It is always hard to tell what the future will bring, especially in a world where everything is evolving so quickly. But it&#8217;s always good to know what libraries, languages or applications will influence the way we work or the language we code in. There for I took the time to create an overview of what could be interesting in the near and far future.  If you have any remarks or other ideas, I would be happy to hear them in the comments.</p>
<p><strong>HTML 5</strong></p>
<p>Jon Von Tetzchner (director of Opera) recently announced that HTML 5 will replace Flash almost completely. Will it go that far? I don&#8217;t think so, but what we will be able to do with it is quite impressive!</p>
<ul>
<li>Extension of the DOM with new elements like: section, audio, video, canvas, etc&#8230;</li>
<li>New attributes like: ping, charset, async</li>
<li>Id, tabindex and repeat for every element</li>
</ul>
<p>As you can see the HTML 5 will be an expansion of HTML 4 but with rather important differences. We can expect HTML 5 to get its W3C Candidate Recommendation in 2012 but it will be able to use some of the features sooner. One of those is canvas that is already a widely implemented element.</p>
<p>Serge Jespers wrote a post on his weblog as a reaction on what Jon Von Tetzchner said and you can read about it here <a href="http://www.webkitchen.be/2009/05/27/adobe-versus-the-open-web/">http://www.webkitchen.be/2009/05/27/adobe-versus-the-open-web/</a> He is an Adobe platform evangelist and Adobe pays his payckeck every month, but I do think the guy has a point.</p>
<p><strong>JavaScript 2.0<br />
</strong></p>
<p>With JavaScript being more popular than ever this is certainly worth taking a look at. John Resig created a slideshow on what will be changed in the 2.0 version and I must say that it looks promising.</p>
<p><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=js15to20-1212939504252573-8&amp;rel=0&amp;stripped_title=javascript-15-to-20-tomtom" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=js15to20-1212939504252573-8&amp;rel=0&amp;stripped_title=javascript-15-to-20-tomtom" /><param name="allowfullscreen" value="true" /></object></p>
<p><strong>PHP 6</strong></p>
<p>A lot of people swear by the use of PHP over other language (like me <img src='http://www.devexp.eu/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  ) and a lot of other people say that PHP just isn’t sufficient enough. They are probably right because there are some insufficiencies in PHP, but in version 6 a few of those will be reviewed and adjusted.  For now v6 is available as a developer snapshot so if you want you can already try it out.</p>
<p>Improved Unicode support.<br />
This was a really necessary to keep up with other languages like JAVA that have a better i18n (internationalization) support, in this way PHP will close up the gap it had and support you with a much broader set of characters.</p>
<p>Namespaces<br />
Namespaces are a way of avoiding name collisions between functions and classes without using prefixes in naming conventions that make the names of your methods and classes unreadable. By using namespaces we can never have the problem that 2 classes with the same name interfere with each other. I’m still wondering if this is the best solution but we’ll have to find out in the future. I’m only struggling with the idea that this only moves the problem to a higher level, as you now have to make sure your namespaces aren’t the same.</p>
<p>XML<br />
XMLReader and XMLWriter will become part of the PHP core, which will make it easier to work with XML in PHP.</p>
<p>Magic_quotes and register_globals will be removed from PHP as they are a huge problem in PHP security.</p>
<p>It is from version 6 required to use  tags as the ASP-style tags are no longer supported (&lt;% %&gt;)</p>
<p>Those are the biggest changes, again, just like in JavaScript some of these changes are already implemented in a PHP5.3<br />
So in a nutshell, I do believe that PHP has a superb future in front of it, but that is also because of frameworks like Symfony, CakePhp, Zend, etc.</p>
<div class="shr-publisher-810"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/05/28/the-future-of-web-development/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mantis in Eclipse with Mylyn</title>
		<link>http://www.devexp.eu/2009/05/20/mantis-in-eclipse-with-mylyn/</link>
		<comments>http://www.devexp.eu/2009/05/20/mantis-in-eclipse-with-mylyn/#comments</comments>
		<pubDate>Wed, 20 May 2009 07:53:06 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Languages]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[eclipse]]></category>
		<category><![CDATA[mantis]]></category>
		<category><![CDATA[mylyn]]></category>
		<category><![CDATA[websvn]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=783</guid>
		<description><![CDATA[This is a post especially for those who use Mantis as a bug tracker software and Eclipse as development software. For our PHP and JAVA development we do all the programming in Eclipse and wouldn&#8217;t it be easy if Eclipse &#8230; <a href="http://www.devexp.eu/2009/05/20/mantis-in-eclipse-with-mylyn/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>This is a post especially for those who use Mantis as a bug tracker software and Eclipse as development software. For our PHP and JAVA development we do all the programming in Eclipse and wouldn&#8217;t it be easy if Eclipse recognized the bugs we are working? Wouldn&#8217;t it be easy if we could just get an automatic link between mantis and the commits we do in subversion (svn).</p>
<p>Well, praise the lord, &#8217;cause there is an open source project out there that does all these things called <a href="http://www.eclipse.org/mylyn/" target="_blank">Mylyn</a>.</p>
<blockquote><p>Mylyn is a task-focused interface for Eclipse that reduces information overload and makes multi-tasking easy. It does this by making tasks a first class part of Eclipse, and integrating rich and offline editing for repositories such as Bugzilla, Trac, and JIRA.  Once your tasks are integrated, Mylyn monitors your work activity to identify relevant information, and uses this task context to focus the user interface on the task-at-hand. This puts the information you need at your fingertips and improves productivity by reducing searching, scrolling, and navigation. By making task context explicit Mylyn also facilitates multitasking, planning, reusing past efforts, and sharing expertise.
</p></blockquote>
<p><img class="alignright wp-image-786" title="tasklist-splash-31" src="http://www.devexp.eu/wp-content/uploads/2009/05/tasklist-splash-31.png" alt="tasklist-splash-31" width="282" height="489" /><br />
After a quick install and doing the configuration in Eclipse the interface is installed in Eclipse and ready to work with. And it is great! Easy overviews of all the bugs sorted by filter as you personally prefer, great layout to create and manage the bugs, etc.</p>
<p>It communicates quite nice with mantis, it could be a bit faster but let&#8217;s not fall over that tiny thing. The cool thing though is when working for a specific bug, all changes will be committed on those files with a reference to that specific bug. This makes it very easy to get see what files where changed for a specific bug. </p>
<p>For example when you commit changed files you will be asked to comment your committed files. Mylyn links your files directly to the current bug you are working on and puts this in the comment area: &#8220;fixed issue #178: Change user name to full name&#8221; . The number of the issue and the state are first mentioned and the title completes your comment.</p>
<p>In the screenshot you can see how a bug can be inserted or edited in a easy layout and inside the eclipse environment. Click on the image or <a href="http://www.devexp.eu/wp-content/uploads/2009/05/mylyn-31-screenshot.png" target="_blank">here</a> to see a larger image<br />
<a href="http://www.devexp.eu/wp-content/uploads/2009/05/mylyn-31-screenshot.png" target="_blank"><img class="size-full wp-image-785" title="mylyn-31-screenshot" src="http://www.devexp.eu/wp-content/uploads/2009/05/mylyn-31-screenshot.png" alt="mylyn-31-screenshot" width="550" border="0"/></a></p>
<p>My colleague Toni also installed <a href="http://www.websvn.info/" target="_blank">WebSVN </a>that gives us a super overview on all those changes and files committed in subversion.</p>
<p>If you use Mantis and Eclipse and SVN I highly recommend that you use these two utilities.</p>
<div class="shr-publisher-783"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/05/20/mantis-in-eclipse-with-mylyn/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>TestFest 2009</title>
		<link>http://www.devexp.eu/2009/05/08/testfest-2009/</link>
		<comments>http://www.devexp.eu/2009/05/08/testfest-2009/#comments</comments>
		<pubDate>Fri, 08 May 2009 09:26:08 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[Events]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[Combell]]></category>
		<category><![CDATA[fest]]></category>
		<category><![CDATA[Gent]]></category>
		<category><![CDATA[test]]></category>
		<category><![CDATA[TestFest]]></category>
		<category><![CDATA[utrecht]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=667</guid>
		<description><![CDATA[Tomorrow on the 9th of may an event called &#8216;PHP TestFest 2009&#8242; will take place in the offices of Combell. (visit the website) What is TestFest you ask? The TestFest is an event that aims at improving the code coverage &#8230; <a href="http://www.devexp.eu/2009/05/08/testfest-2009/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p>Tomorrow on the 9th of may an event called &#8216;PHP TestFest 2009&#8242; will take place in the offices of Combell. (<a href="http://qa.php.net/testfest.php" target="_blank">visit the website</a>)</p>
<p><strong>What is TestFest you ask?</strong></p>
<blockquote><p>The TestFest is an event that aims at improving the <a href="http://gcov.php.net/">code coverage</a> of the <a href="http://qa.php.net/running-tests.php">test suite</a> for the PHP language itself. As part of this event, local User Groups (UG) are invited to join the TestFest. These UGs can meet physically or come together virtually. The point however is that people network to learn together. Aside from being an opportunity for all of you to make friends with like minded people in your (virtual) community, it also will hopefully reduce the work load for the PHP.net mentors. All it takes is someone to organize a UG to spearhead the event and to get others involved in <a href="http://qa.php.net/write-test.php">writing phpt tests</a>. The submissions will then be reviewed by members of php.net before getting included in the official test suite.</p></blockquote>
<p>This event will take place in different countries but for the dutch speaking PHP community you can go to these addresses:</p>
<p>Hogeschool Domstad, Koningsbergerstraat 9, 3531 AJ Utrecht,The Netherlands<img class="size-thumbnail wp-image-764 alignright" style="margin: 5px;" title="testfest_big-276x300" src="http://www.devexp.eu/wp-content/uploads/2009/05/testfest_big-276x300-150x150.png" alt="testfest_big-276x300" width="150" height="150" /></p>
<p>And</p>
<p>Combell offices Ghent, Skaldenstraat 121, 9042 Gent, Belgium (<a href="http://upcoming.yahoo.com/event/2472669/" target="_blank">more info</a>)</p>
<p>There will be a workshop to get the needed information and then it&#8217;s your turn to contribute to the development of the PHP language.</p>
<p>Felix De Vliegher is the mentor for Belgium and did the most tests in 2008 in the whole freaking world. With his experience and vision, this will be a piece of cake, be there or be square&#8230;. (maybe I will write about Felix later in our topic interesting people)</p>
<p>For those who will be on this event, have fun!!!!</p>
<div class="shr-publisher-667"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/05/08/testfest-2009/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Basic forms with Symfony</title>
		<link>http://www.devexp.eu/2009/04/30/basic-forms-with-symfony/</link>
		<comments>http://www.devexp.eu/2009/04/30/basic-forms-with-symfony/#comments</comments>
		<pubDate>Thu, 30 Apr 2009 11:12:57 +0000</pubDate>
		<dc:creator>van Rumste Kenneth</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[forms]]></category>
		<category><![CDATA[module]]></category>

		<guid isPermaLink="false">http://www.devexp.eu/?p=726</guid>
		<description><![CDATA[Our goal is to create a little crud that contains 4 fields id (auto increment integer) name (varchar 50) value (double) type (0 or 1) What I will explain is how to change your fields in the form after creation &#8230; <a href="http://www.devexp.eu/2009/04/30/basic-forms-with-symfony/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<!-- Start Shareaholic LikeButtonSetTop Automatic --><!-- End Shareaholic LikeButtonSetTop Automatic --><p><img class="alignright size-full wp-image-727" title="Symfony" src="http://www.devexp.eu/wp-content/uploads/2009/04/symfony.jpg" alt="Symfony" width="127" height="35" />Our goal is to create a little crud that contains 4 fields</p>
<p>id (auto increment integer)<br />
name (varchar 50)<br />
value (double)<br />
type (0 or 1)</p>
<p>What I will explain is how to change your fields in the form after creation with generation of a module. So we start with a clean module that contains 1 action class and 3 templates (new, edit and index) and 1 partial (form) that is included on the new and edit template.<br />
We created this module not by hand but with the very easy command: symfony propel:generate-module.</p>
<p><span id="more-726"></span>So what we want to do is quite easy, but if you are not used to working with forms, this is already a big struggle. So go to the action and you will see that in the executeNew method a form is initialized with an instance of a class (in our case DiscountForm).</p>
<pre class="brush: php; title: ; notranslate">
public function executeNew(sfWebRequest $request)
{
$this-&gt;form = new DiscountForm();
}
</pre>
<p>If you now go to the page in your browser you will see that the form is build up for you in a very basic way, containing no layout and just the 4 labels, the input fields and a submit button. If you want the user to see error messages when he has forgotten to fill in a required field or if you want to add a field to the form you can do that in the DiscountForm by adding a function configure().</p>
<pre class="brush: php; title: ; notranslate">
class DiscountForm extends BaseDiscountForm  {
public function configure() {
//insert extra data
}
}
</pre>
<p>Now, as we don&#8217;t want the user to select 0 or 1 when choosing his type, we let him use a dropdown with understandable content to choose from. 0 is discount and 1 is up count. The purpose of the type is that the number inserted in the value field will be added or subtracted.</p>
<p>To do this we create a public $type array containing the discount and up count in the Discount class in the model. We do this in the model class because, in this way, we can re-use this in other methods later as we might need this in the templates or other classes.</p>
<pre class="brush: php; title: ; notranslate">
static public $types = array(
'0' =&gt; 'Discount',
'1' =&gt; 'Up count',
);
</pre>
<p>And in the configure method we put this:</p>
<pre class="brush: php; title: ; notranslate">
$this-&gt;widgetSchema['type'] = new sfWidgetFormChoice(array(
'choices'  =&gt; Discount::$types,
'expanded' =&gt; true,
));
</pre>
<p>If you reload your view on this point you will see that the type field has changed to a radio button field, which is easier to read.</p>
<p>You can style the form by adding some attributes to your fields:</p>
<pre class="brush: php; title: ; notranslate">
&lt;?php echo $form['discount']-&gt;render(array('class' =&gt; 'page-input', 'size' =&gt; 5));  ?&gt;
</pre>
<p>Page-input is the class specified in the css and giving the field a proper layout and size is the width of the field, in this case 5.<br />
All other attributes your element can accept can be inserted like this.</p>
<p>That&#8217;s actually it, if you followed these easy steps, you created your own basic crud. How nice it all looks will all depend on the css you use. For a few templates on forms you can take a look at <a href="http://www.smashingmagazine.com/2006/11/11/css-based-forms-modern-solutions/" target="_blank">this post </a></p>
<div class="shr-publisher-726"></div><!-- Start Shareaholic LikeButtonSetBottom Automatic --><!-- End Shareaholic LikeButtonSetBottom Automatic -->]]></content:encoded>
			<wfw:commentRss>http://www.devexp.eu/2009/04/30/basic-forms-with-symfony/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

