<?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>Sukria.net</title>
	<atom:link href="http://www.sukria.net/fr/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.sukria.net/fr</link>
	<description>Alexis Sukrieh&#039;s blog, mostly Perl stuff</description>
	<lastBuildDate>Fri, 27 Aug 2010 13:33:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Beyond the strictness you&#8217;re used to</title>
		<link>http://www.sukria.net/fr/archives/2010/08/27/beyond-the-strictness-youre-used-to/</link>
		<comments>http://www.sukria.net/fr/archives/2010/08/27/beyond-the-strictness-youre-used-to/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 13:33:03 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[commit]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Perl::Critic]]></category>
		<category><![CDATA[PerlTidy]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1605</guid>
		<description><![CDATA[Perl is famous as a programming language for letting its users code as they like. The mantra every Perl developer knows is There Is More Than One Way To Do It (even though, it looks like these days, some popular &#8230; <a href="http://www.sukria.net/fr/archives/2010/08/27/beyond-the-strictness-youre-used-to/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Perl is famous as a programming language for letting its users code as they like. The mantra every Perl developer knows is <em>There Is More Than One Way To Do It</em> (even though, it looks like these days, some popular Perl developers are upset when you bring a new solution to a problem, but I digress).</p>
<p>My point is, Perl is like water. It will fit in your bowl, whatever its shape. It&#8217;s a language that will reflect your way of thinking most than any other language. I know some Python developers that are pretty in love with their language just because of the opposite spirit: in Python, there should be only one good solution for any given problem. That&#8217;s what they like, and what comes together with this philosophy is a very strict language that forces you to be a good citizen.</p>
<p>I can understand that. Strictness is a very good ally for a developer. But I want <em>my</em> strictness. Not the one that comes with the box. The strictness of my programming should be as I want it to be, it&#8217;s personal, and if I&#8217;m in a team, it should be a set of rules everyone are aware of.</p>
<p>This is were, again, I&#8217;m very happy to use Perl. </p>
<p>A couple of weeks ago, at work, I wanted to set a strict Perl environment for my everyday needs. I ended up writing a pre-commit hook that has the following features:</p>
<ul>
<li>filter the code with PerlTidy</li>
<li>prevent any commit that violates a Perl::Critic policy</li>
<li>run the test suite with Devel::Cover and make sure the total coverage rate is not lower than it was before the commit</li>
</ul>
<p>Of course, as I said above, I want <em>my</em> strictness, so PerlCritic and PerlTidy use respectively .perlcriticrc and .perltidyrc in the local directory, so I can tweaks the rules on a per-project basis.</p>
<p>After two weeks working with this hook, I realize that my code is now much more robust and very well tested (100% coverage is easy to reach when you start working on a project like that).</p>
<p>If anyone is interested in this commit hook, <a href="http://github.com/sukria/perl-git-hooks/blob/master/hooks/pre-commit.critical">it&#8217;s on GitHub</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/08/27/beyond-the-strictness-youre-used-to/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dancer Q&amp;A Hackaton</title>
		<link>http://www.sukria.net/fr/archives/2010/08/06/dancer-qa-hackaton/</link>
		<comments>http://www.sukria.net/fr/archives/2010/08/06/dancer-qa-hackaton/#comments</comments>
		<pubDate>Fri, 06 Aug 2010 13:46:23 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1599</guid>
		<description><![CDATA[For your information, a Dancer hackaton is scheduled on the 14th of august (saturday) in order to help the team on different topics: Test the devel branch (which provides a new core and new features) Improve the documentation Improve the &#8230; <a href="http://www.sukria.net/fr/archives/2010/08/06/dancer-qa-hackaton/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For your information, a Dancer hackaton is scheduled on the 14th of august (saturday) in order to help the team on different topics:</p>
<ul>
<li>Test the devel branch (which provides a new core and new features)</li>
<li>Improve the documentation</li>
<li>Improve the test coverage and reach 1k tests (we have 977 so it shouldn&#8217;t be difficult ;)</li>
</ul>
<p>If you like Dancer and want to help, feel free to join us, this will hapen on irc.perl.org, chan ♯dancer, see you there!</p>
<p>Happy dancing.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/08/06/dancer-qa-hackaton/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Dancer, global thoughts about our philosophy</title>
		<link>http://www.sukria.net/fr/archives/2010/07/09/dancer-global-thoughts-about-our-philosophy/</link>
		<comments>http://www.sukria.net/fr/archives/2010/07/09/dancer-global-thoughts-about-our-philosophy/#comments</comments>
		<pubDate>Fri, 09 Jul 2010 13:40:39 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Philosophy]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1567</guid>
		<description><![CDATA[If you follow Perl5 blogs you may have been aware that Dancer was put under the spotlight recently (even if that spotlight was meant to be showing the weak points of Dancer, it was still an enlightenment). I&#8217;m going to &#8230; <a href="http://www.sukria.net/fr/archives/2010/07/09/dancer-global-thoughts-about-our-philosophy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>If you follow Perl5 blogs you may have been aware that Dancer was put under the spotlight recently (even if that spotlight was meant to be showing the weak points of Dancer, it was still an enlightenment).</p>
<p>I&#8217;m going to use that event as an opportunity to give my point of view on Dancer, this entry will be a reference for exposing the philosophy of the project. </p>
<p><strong>1. Is Dancer a port of Sinatra ?</strong></p>
<p>No. It clearly isn&#8217;t. It&#8217;s written quite everywhere in the documentation that Dancer was <em>inspired</em> by Sinatra. But the project clearly took its own path. </p>
<p>Don&#8217;t expect Dancer to be a Perl 5 clone of Sinatra, it isn&#8217;t and will never be. Dancer is a micro-framework, based on the concept introduced by Sinatra. But it provides features of its own, may do things differently and address other issues than Sinatra.</p>
<p>That being said, Sinatra has been a huge source of inspiration.</p>
<p><strong>2. How is Dancer being developed?</strong></p>
<p>Dancer quickly attracted lots of users. Lots of feedback received mentioned &#8220;a feeling a fresh air thrown in Perl5&#8243; and we are very glad to see such support from our users. We give a lot of attention to users, we take every suggestion seriously and most of the time, a feature is added because the community itself agreed on the concept.</p>
<p>Dancer is clearly community-driven. As the project-leader, I make decisions when there is some kind of hesitation, but as long as an idea makes sense, I don&#8217;t see why I should refuse it.</p>
<p>Dancer is a young project: it&#8217;s going to be one year old in august, so we&#8217;re aware the code isn&#8217;t perfect. That&#8217;s why most of our energy is spent in refactoring and bug-fixing. The only priority for me is to release Dancer 1.2 which should be a rock-solid release.</p>
<p>Our code base is very well tested (we have near 1k tests, about 90% of code-coverage). </p>
<p>We are very pleased with the feature-set, our users don’t stop telling us they’re very happy with Dancer, and actually enjoy working with it. This is the best thing that can happen when you do free software: seeing that your work is enjoyed by others).<br />
So, our priority is to make the whole thing robust and well-designed.</p>
<p>Once we have something like that, Dancer 1.2 will be out. And the beer will flow all the night. Yay.</p>
<p><strong>3. How are planned the new features?</strong></p>
<p>One of the attacks was about the fact we <em>stole</em> features from another framework, so I understand people can start thinking this is true. </p>
<p>Of course it&#8217;s not. And if it was, I would undestand that as a greeting to the related framework, anyways.</p>
<p>As I said in the section above, we plan our development mostly according to our user requests. Almost all of the issues reported on our tracker originate from our community.</p>
<p>Of course, when a good thing happens somewhere, we may start paying attention to it, like websockets. Some of our users asked for websocket support and we started investigating. I now understand it may look like we started <em>stealing code</em> (what does &#8220;stealing&#8221; mean if the code is public anyways?) but we&#8217;re not, we&#8217;re following our users, as we always did.</p>
<p><strong>4. What&#8217;s Dancer philosophy regarding other Perl 5 frameworks?</strong></p>
<p>We are definitely Perl lovers. That means we truly think that <em>there is more than one way to do it</em>. Dancer is one way to go. If you don’t choose that way, that’s perfectly understandable, maybe it lacks a feature you have in another framework, maybe you don&#8217;t like Dancer&#8217;s syntax, whatever the reason, we understand we can&#8217;t be the only way to go.</p>
<p>But we know, on the other hand, that Dancer addresses one way to do web development, and it clearly looks like lots of people like that way.</p>
<p>We think that having many frameworks out there is a good thing for Perl 5, and a sign of vitality of the language. We want nothing more than a peaceful cohabition between Perl 5 frameworks. That&#8217;s why we don&#8217;t think that attacking another framework is a smart thing to do, we don&#8217;t see why we should be aggressive if we&#8217;re pleased with our project.</p>
<p>We do think that friendly competition is better and let good ideas flow between different implementations.</p>
<p>Let me end this article with Tolkien, in a poetic way:</p>
<blockquote><p>
Three Frameworks for the Elven-kings under the sky,<br />
Seven for the Dwarf-lords in their halls of stone,<br />
Nine for Mortal Men doomed to die,<br />
One for the Dark Lord on his dark throne<br />
In the Land of Mordor where the Shadows lie.</p>
<p>One Language to rule them all, One CPAN to find them,<br />
One PSGI to bring them all and in Plack bind them
</p></blockquote>
<p>Don&#8217;t forget, enjoy your code. Whatever happens.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/07/09/dancer-global-thoughts-about-our-philosophy/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Perl Dancer meeting #1 report</title>
		<link>http://www.sukria.net/fr/archives/2010/07/03/perl-dancer-meeting-1-report/</link>
		<comments>http://www.sukria.net/fr/archives/2010/07/03/perl-dancer-meeting-1-report/#comments</comments>
		<pubDate>Sat, 03 Jul 2010 12:16:41 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[Meeting]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1555</guid>
		<description><![CDATA[Here is my quick report of the first Dancer meeting that took place last thursday in Paris. We started the meeting by demonstrating how Dancer and Plack middlewares can be powerful and easy-to-use. We did a live demo of a &#8230; <a href="http://www.sukria.net/fr/archives/2010/07/03/perl-dancer-meeting-1-report/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Here is my quick report of the first Dancer meeting that took place last thursday in Paris.</p>
<ul>
<li>We started the meeting by demonstrating how Dancer and Plack middlewares can be powerful and easy-to-use. We did a live demo of a scaffolded Dancer app configured to run with <a href="http://search.cpan.org/dist/Plack-Middleware-Debug/">Plack::Middleware::Debug</a>. That was neat. Just editing the config file allows you to enable and disable middlewares, you don&#8217;t even need to know about <a href="http://search.cpan.org/~miyagawa/Plack-0.9940/lib/Plack/Builder.pm">Plack::Builder</a>, Dancer does all the black-magick for you. I ended the demo by showing how to get all your logging messages in your Firebug console thanks to <a href="http://search.cpan.org/dist/Plack-Middleware-ConsoleLogger/">Plack::Middleware::ConsoleLogger</a> and <a href="http://search.cpan.org/dist/Dancer-Logger-PSGI/">Dancer::Logger::PSGI</a>. That was a piece of cake:
<ol>
<li><code>$ sudo cpanm Plack::Middleware::ConsoleLogger Dancer::Logger::PSGI</code></li>
<li>in config.yml :
<pre>
logger: "PSGI"
plack_middlewares:
  - ConsoleLogger:
</pre>
</li>
<li>restart the app with plackup</li>
</ol>
<p>And that was it. Impressive :)
</li>
<li>We talked about the implications of supporting mountable Dancer applications inside Dancer&#8217;s core, in order to fix the <a href="http://github.com/sukria/Dancer/issues#issue/82">whishlist item #82</a>. We all agree on the fact that this would allow lots of good things (like generic reusable application bricks); but the rewrite needed is massive. We may wait for 1.2 to be released before starting wroking on that.</li>
<li>We plan to write three articles for &#8220;Linux Magazine France&#8221;. The money earned by those articles will be spent in a pro GitHub account. The first article to be written is an introduction to Dancer, the second one should present PSGI/Plack and the third would explain how to use Dancer with Plack middlewares.
</li>
<li>
Franck plans to work on an asynchronous handler so Dancer can be non-blocking. This would allow support for websockets.
</li>
</ul>
<p>Next meeting will probably occur in september as we may be very few in Paris during august.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/07/03/perl-dancer-meeting-1-report/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Perl Dancer meeting #1</title>
		<link>http://www.sukria.net/fr/archives/2010/07/01/perl-dancer-meeting-1/</link>
		<comments>http://www.sukria.net/fr/archives/2010/07/01/perl-dancer-meeting-1/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 16:44:33 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[Meeting]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1548</guid>
		<description><![CDATA[As explained on the mailing list, we had the idea to schedule a monthly meeting in Paris for people interested in Dancer&#8217;s development (users are welcome as well, of course). The first meeting takes place this evening, in order not &#8230; <a href="http://www.sukria.net/fr/archives/2010/07/01/perl-dancer-meeting-1/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As explained on the mailing list, <a href="http://lists.perldancer.org/pipermail/dancer-users/2010-June/000164.html">we had the idea to schedule a monthly meeting</a> in Paris for people interested in Dancer&#8217;s development (users are welcome as well, of course).</p>
<p>The first meeting takes place this evening, in order not to come with empty hands, I&#8217;ll write down here a list of topics I&#8217;d like to discuss with the team:</p>
<ul>
<li>&#8220;Linux Mag&#8221; articles : Franck and I have planed to write a serie of three articles about Dancer and Plack for the french &#8220;Linux Magazine&#8221;. I already have a first draft of  the first article
</li>
<li>Dancer 1.2 release : discussions about plans, key-feature, and maybe a timeline for the next major release of Dancer.</li>
<li>What about the mountable feature ? A recent <a href="http://github.com/sukria/Dancer/issues#issue/82">whishlist item</a> was posted to our issue tracker, the idea is pretty interesting, but implies a major rewrite of Dancer&#8217;s internals. Should we open a new branch where Dancer&#8217;s core willm be basically rewritten?</li>
</ul>
<ul>
<p>Stay tuned for the report&#8230;</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/07/01/perl-dancer-meeting-1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>French Perl Workshop 2010 report</title>
		<link>http://www.sukria.net/fr/archives/2010/06/12/french-perl-workshop-2010-report/</link>
		<comments>http://www.sukria.net/fr/archives/2010/06/12/french-perl-workshop-2010-report/#comments</comments>
		<pubDate>Sat, 12 Jun 2010 17:37:42 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[FPW2010]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1532</guid>
		<description><![CDATA[I&#8217;m just back from FPW 2010 and I want to write this blog entry right now, while everything is still fresh in my mind. Lots of things happened regarding Dancer and I want to sum them up here. my Perl &#8230; <a href="http://www.sukria.net/fr/archives/2010/06/12/french-perl-workshop-2010-report/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m just back from FPW 2010 and I want to write this blog entry right now, while everything is still fresh in my mind. Lots of things happened regarding Dancer and I want to sum them up here.</p>
<h2>my Perl Dancer talk (update)</h2>
<p>Now that Slideshare has finally processed my slides, I can embed them here, enjoy.</p>
<div style="width:425px" id="__ss_4482016"><strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/asukrieh/perl-dancer-fpw-2010-4482016" title="Perl Dancer, FPW 2010">Perl Dancer, FPW 2010</a></strong><object id="__sse4482016" width="425" height="355"><param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=fpw2010-perldancer-100612140837-phpapp01&#038;stripped_title=perl-dancer-fpw-2010-4482016" /><param name="allowFullScreen" value="true"/><param name="allowScriptAccess" value="always"/><embed name="__sse4482016" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=fpw2010-perldancer-100612140837-phpapp01&#038;stripped_title=perl-dancer-fpw-2010-4482016" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"></embed></object></div>
<h2 style="margin-top: 1em;">BibLibre, Dancer and authentication middlewares</h2>
<p>First of all I&#8217;ve met Marc Chantreux who works for <a href="http://www.biblibre.com/">BibLibre</a> and wants to use <a href="http://perldancer.org">Dancer</a> at work. </p>
<p>Marc is looking for the good way to implement an authentication layer for his Dancer app. Looks like the way to go is with a Plack::Middelware. Indeed, <a href="http://lumberjaph.net/">Franck Cuny</a> explained us that middlewares are a really great way to address this kind of feature. That way the authentication layer is separated from the application. Thanks to his <a href="http://search.cpan.org/dist/Dancer-Session-PSGI/">Dancer::Session::PSGI</a>, this could be done really easily.</p>
<p>I&#8217;m really glad Marc and his company give so much interest and trust into Dancer, I&#8217;m pleased to see such things happening and I&#8217;m going to give them as much help as I can in their daily needs with Dancer.</p>
<p>Not to mention that Marc already contributed an interesting patch to Dancer&#8217;s code, providing better pattern matching and named-captures support in our route handlers. He also appeared to be very motivated and had plenty of ideas and questions regarding Dancer&#8217;s development. I&#8217;m sure he can become quickly a regular contributor to the project.</p>
<h2>About WebSocket support in Dancer</h2>
<p>I&#8217;ve talked a lot with Franck about Dancer, that was really interesting to met him in real life for a couple of days and share ideas and remarks regarding our code. </p>
<p>I&#8217;ve asked him about websocket support and it appears that it&#8217;s &#8220;just&#8221; a matter of having a non-blocking &#8220;request handler&#8221;. Dancer is not currently non-blocking, unless you choose to deploy with Plack and Twiggy. What we plan to do is to provide a third handler, named Dancer::Handler::Async which would depend on Twiggy and would force a non-blocking context. But we have to investigate more prcesiely that. Franck is willing to dig in that direction, so maybe we can have more to say in a month or two.</p>
<h2>A Dancer implementation in Perl 6 ?</h2>
<p>After my talk about Dancer &#8211; <a href="http://www.sukria.net/fr/fpw2010-PerlDancer.pdf">you can grab the slides here</a> &#8211; I&#8217;ve been at a Perl 6 workshop that was handled by <a href="http://github.com/mberends">Martin Berends</a>. We first started to install rakudo and he showed me some Perl 6 stuff. Then we ended up talking about &#8230; well, guess what, Dancer :) </p>
<p>He was very excited about the project. He then suggested the idea of a Perl 6 implementation. Martin already implemented an <a href="http://gitorious.org/http-daemon">HTTP::Daemon</a> module for Perl 6, and I suggested to look at <a href="http://search.cpan.org/dist/HTTP-Server-Simple-PSGI/">HTTP::Server::Simple::PSGI</a> which would be the very first dependency Dancer would need. That would be awesome to have Dancer in Perl 6, wouldn&#8217;t it?</p>
<p>Well, I hope I don&#8217;t forget anything important to say in this report, the event was great, and I should stop writing now and go take some rest :)</p>
<p>Happy hacking.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/06/12/french-perl-workshop-2010-report/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Redesign contest for perldancer.org</title>
		<link>http://www.sukria.net/fr/archives/2010/05/20/redesign-contest-for-perldancer-org/</link>
		<comments>http://www.sukria.net/fr/archives/2010/05/20/redesign-contest-for-perldancer-org/#comments</comments>
		<pubDate>Thu, 20 May 2010 15:59:09 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[The Void]]></category>
		<category><![CDATA[contest]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1520</guid>
		<description><![CDATA[As you can see when you visit the Perl Dancer&#8217;s website, I suck at webdesign :) My skills are limited to a couple of Gimp tricks and the ability to find some Creative-Commons material on Flickr&#8230; That&#8217;s why the design &#8230; <a href="http://www.sukria.net/fr/archives/2010/05/20/redesign-contest-for-perldancer-org/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>As you can see when you visit the <a href="http://perldancer.org">Perl Dancer&#8217;s website</a>, I suck at webdesign :) My skills are limited to a couple of Gimp tricks and the ability to find some Creative-Commons material on <a href="http://www.flickr.com">Flickr</a>&#8230;</p>
<p>That&#8217;s why the design of our website is not as shiny, <a href="http://www.gaertner.de/~schuma/not-too-webbish.gif">webbish</a> and cool as it could be. At first, we were thinking at raising some money via donations for paying a profesionnal designer. But quickly some people volunteered here and there, and the idea to build a new design on goodwill did fit better the Free Software philosophy than paying someone to do it.</p>
<p>Today, more than 3 people volunteered to submit a proposal, so this gave me the idea to run a contest, let me explain what I have in mind:</p>
<p>The contest is to build a complete new visual identity for the Perl Dancer project. There are 3 categories in the contest: <b>Website design</b>, <b>Logo</b>, <b>Web Banner</b> for dancer-powered websites.</p>
<p>Here are the instructions a proposal must follow to be accepted:</p>
<ul>
<li>The artist is totally free regarding colors, visual elements, logo and CSS techniques.</li>
<li>The following baseline should be visible: <em>The easiest way to write web applications with Perl</em></li>
<li>If any visual element is added to the design, it should recall the idea of one or more of the following concepts: <em>Lightness</em>, <em>Easiness</em>, <em>Extensibility</em></li>
</ul>
<p>Here is how to submit your proposal:</p>
<p><b>Update</b></p>
<p><em>After some feedback I&#8217;ve received, I&#8217;m now aware that asking someone to submit a full, finished project on the off chance that it might be used, is a bit unfair. It&#8217;s indeed a lots of work to polish the design completely. So I&#8217;m now changing the conditions for accepting a proposal: any design can be submited as a static HTML file, or as a screenshot.</p>
<p>This will be enough to let users vote. That way, the designer will work on all the details when they know they&#8217;ve won the contest.<br />
</em></p>
<p><del datetime="2010-05-20T21:06:04+00:00">First, install Dancer in order to be able to run your website clone locally:</p>
<pre>
$ curl -L http://cpanmin.us | perl - Dancer
</pre>
<p>Then create an account on <a href="http://github.com">GitHub</a> if you don&#8217;t already have one.</p>
<p>Fork the <a href="http://github.com/sukria/perldancer-website">perldancer-website</a> project and clone it:</p>
<pre>
    $ git clone YOUR_FORK_URL
    $ cd perldancer-website
</pre>
<p>You can now work on your design by editing views and see your changes by running the dancer script:</p>
<pre>
$ ./perldancer.pl
>> Dancer server 527 listening on http://0.0.0.0:3000
</pre>
<p>Open a browser at http://localhost:3000 and see your design in action with the real website content. That&#8217;s how we dance ;)</p>
<p>When your design is ready for a proposal, make sure you&#8217;ve commited all your changes and push to your fork. Then ask for a pull request:</p>
<pre>
$ git push origin master
...
</pre>
<p></del></p>
<p>Note that there is no deadline yet, but we could choose one soon.<br />
As soon as we have enough proposals, we&#8217;ll be able to open a vote for electing the winner.<br />
All dancer users will be allowed to vote, this will probably happen on the users mailing list.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/05/20/redesign-contest-for-perldancer-org/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dancer 1.18 released</title>
		<link>http://www.sukria.net/fr/archives/2010/05/18/dancer-1-18-released/</link>
		<comments>http://www.sukria.net/fr/archives/2010/05/18/dancer-1-18-released/#comments</comments>
		<pubDate>Tue, 18 May 2010 11:00:49 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1514</guid>
		<description><![CDATA[I&#8217;m glad to announce a new major release of Dancer, version 1.18 is now out and waiting for you on the dancefloor. Please fire up your beloved cpanminus and try it out. This release provides some new features such as &#8230; <a href="http://www.sukria.net/fr/archives/2010/05/18/dancer-1-18-released/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m glad to <a href="http://www.backup-manager.org/pipermail/dancer-users/2010-May/000120.html">announce</a> a new major release of <a href="http://perldancer.org">Dancer</a>, <a href="http://search.cpan.org/~sukria/Dancer-1.1800/">version 1.18</a> is now out and waiting for you on the dancefloor.</p>
<p>Please fire up your beloved <abbr title="curl -L http://cpanmin.us | sudo perl - Dancer">cpanminus</abbr> and try it out.</p>
<p>This release provides some new features such as new logging facilities, better filters and plugins support, complete documentation cleanup and of course, has many bugfixes as we can manage to commit.</p>
<p>The next major release will be 1.2.</p>
<p>Note that the <a href="http://journeesperl.fr/fpw2010/index.html">French Perl Workshop 2010</a> is coming very soon and that I&#8217;ll give <a href="http://journeesperl.fr/fpw2010/talk/2712">a talk there about Dancer</a>.</p>
<p><b>UPDATE</b> If you upgrade to 1.18, please make sure you&#8217;re aware of <a href="http://github.com/sukria/Dancer/issues#issue/69">Issue #69</a> (Expect 1.1801 to come soon for fixing this issue).</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/05/18/dancer-1-18-released/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Re: Mojo vs Dancer Week 2 &#8211; Templates and Images</title>
		<link>http://www.sukria.net/fr/archives/2010/04/15/re-mojo-vs-dancer-week-2-templates-and-images/</link>
		<comments>http://www.sukria.net/fr/archives/2010/04/15/re-mojo-vs-dancer-week-2-templates-and-images/#comments</comments>
		<pubDate>Thu, 15 Apr 2010 10:03:31 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[The Void]]></category>
		<category><![CDATA[Dancer]]></category>
		<category><![CDATA[Mojo]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1505</guid>
		<description><![CDATA[This is a follow-up to Alias&#8217; second round report of his &#8220;Mojo vs Dancer&#8221; contest. You can find my follow-up to the first round here. Dancer &#8211; Bootstrapping a website Since my review last week, a couple of new releases &#8230; <a href="http://www.sukria.net/fr/archives/2010/04/15/re-mojo-vs-dancer-week-2-templates-and-images/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><em>This is a follow-up to Alias&#8217; <a href="http://use.perl.org/~Alias/journal/40312">second round report</a> of his &#8220;Mojo vs Dancer&#8221; contest. You can find my follow-up to the first round <a href="http://www.sukria.net/fr/archives/2010/04/03/re-mojo-vs-dancer-week-1-installer-support-and-hello-world/">here</a>.</em></p>
<blockquote><p>
Dancer &#8211; Bootstrapping a website</p>
<p>Since my review last week, a couple of new releases of Dancer hit the CPAN claiming to fix installation on Win32. Just to prove it, I&#8217;ve done this week&#8217;s testing on my conference presentation laptop instead of my desktop machine.</p>
<p>Dancer installed first time cleanly on the new machine. And the hello world script from last week runs correctly. So all good there.
</p></blockquote>
<p>The first round of the contest put some light on something we weren&#8217;t aware of: support for Win32 environments. Indeed, none of the core developers of the project are Windows users. We did work last week on that, and started a basic-yet-strict QA procedure to avoid test regressions.</p>
<p>Our GitHub repository is now splitted into two main branches: <code>master</code> is dedicated to prepare CPAN releases. Only documentation, packaging and bugfix commits are allowed there. New features are developed in the <code>devel</code> branch, and when we want to release a new major version of Dancer, we&#8217;ll start by packaging some DEVELOPER releases from the devel branch <em>before</em> merging it into the master branch.</p>
<p>So we now have a sane development/release cycle, thanks to the packaging/QA issues enlightened by Alias&#8217; first report.</p>
<blockquote><p>
After a more-complete-than-last-week read through the main Dancer search.cpan.org page one thing jumps out quite sharply about the Dancer API in general. And this is that it isn&#8217;t object-oriented, which is something or a rare thing these days.
</p></blockquote>
<p>Indeed, this a choice that goes in the same way as Sinatra does: provide powerful, expressive and intuitive syntactic sugar to the end user to avoid as much as possible administrative code. This is &#8211; if you ask me &#8211; one of the best idea of Sinatra, and I clearly want it to be a key-feautre of Dancer.</p>
<blockquote><p>
Or at least, it doesn&#8217;t LOOK object-oriented. Judging from the distribution page there&#8217;s plenty of classes and I&#8217;m sure the internals are all done largely in an OO fashion.
</p></blockquote>
<p>You&#8217;re absolutely right, everyting inside Dancer&#8217;s internals are made in an OO fashion, <a href="http://github.com/sukria/Dancer/blob/master/lib/Dancer/Object.pm">Dancer::Object</a> is the base-class of every object you can find, and some abstract class are also heavily used for engine (see <a href="http://github.com/sukria/Dancer/blob/master/lib/Dancer/Engine.pm">Dancer::Engine</a>, <a href="http://github.com/sukria/Dancer/blob/master/lib/Dancer/Template/Abstract.pm">Dancer::Template::Abstract</a> or even <a href="http://github.com/sukria/Dancer/blob/master/lib/Dancer/Session/Abstract.pm">Dancer::Session::Asbtract</a> if you want to see some examples).</p>
<p>This is also for this reason why I chose to provide access to the params and request objects through function calls, rather than forcing the user to unroll @_ in the route handlers:</p>
<p>For instance, this route handler&#8230;</p>
<pre class="prettyprint">
get '/' => sub {
    my ($request) = @_;
    $request->params->{foo};
};
</pre>
<p>&#8230;becomes with Dancer syntax:</p>
<pre class="prettyprint">
get '/' => sub {
    params->{foo};
};
</pre>
<p>So yes, Dancer is a <abbr title="Domain Specific Language">DSL</abbr> and it&#8217;s a major design choice behind the project (so don&#8217;t expect it to change in the future).</p>
<blockquote><p>
The main API that you get with &#8220;use Dancer&#8221; sports a similar kind of &#8220;Do What I Mean&#8221; command interface that reminds me a bit of the Module::Install command interface.</p>
<p>This means that the code to show the index template is going to look like this.</p>
<p>get &#8216;/&#8217; => sub {<br />
    template &#8216;index&#8217;;<br />
};</p>
<p>I&#8217;m not entirely sure what I think about this idea, despite the fact that I&#8217;m the maintainer of M:I and created it&#8217;s Domain Specific Language inteface. This kind of thing usually raises red flags.</p>
<p>I can see this API strategy either descending into API chaos or becoming one of Dancer&#8217;s best and most loved features. Or quite possibly both depending on the scale of the project.</p>
<p>For the moment, given Dancer is meant to be taking a micro-framework approach (which should be optimised more for small websites) I&#8217;m willing to suspend my disbelief and run with it until I can make a better judgement.
</p></blockquote>
<p>Well, considering the success of Sinatra, I won&#8217;t reconsider this API choice, this to me one of the key-feature of micro-framework: allowing expressive-yet-powerful syntax. If you have to deal with objects everywhere in your application code, you can&#8217;t have the benefits of lightweight DSL syntax.</p>
<blockquote><p>
The documentation in general is oddly structured. For a command-oriented API like this I would expect to find documentation for each of the available commands. This section of the documentation does exist, but it doesn&#8217;t contain a list of all the commands.</p>
<p>Instead, some of the commands are described down in sub-headings related to a logical area instead. And if you look at the table of contents on the search.cpan page the logical grouping doesn&#8217;t appear very, well, logical.</p>
<p>There&#8217;s some other indications the documentation has built up in bits and pieces rather than being addressed in a complete fashion. Some features are glossed over quickly, leaving me a bit stumped still. Other go into way more detail than is needed for a small website to the point of information overload.
</p></blockquote>
<p>Yes, we&#8217;re totally aware of that, and we started a complete documentation rewrite in the <a href="http://github.com/sukria/Dancer/blob/devel/lib/Dancer.pm#L244">development branch</a>.</p>
<p>We target a full and complete rewrite of the docs for the next major release: 1.2. When this rewrite is complete, we&#8217;ll have the following documentation structure:</p>
<ul>
<li>Dancer : evry syntactic keyword will be documented here, this will be the documentation of all exported symbols</li>
<li>Dancer::Tutorial will provide the user with concrete, step-by-step example in order to start working with Dancer</li>
<li>Dancer::Cookbook will be a good assistant for anyone who wants to solve common issues you can face when developing a web application</li>
<li>Finally, Dancer::Deployment will provide help and configuration examples for deployment issues, most of the time involving Plack and webservers</li>
</ul>
<blockquote><p>
The section on config files seems to suggest I should make three config files, a global config and then a pair of development/production config files that overlay the global. And these files go in different directories for some reason, unless I &#8220;put it all at the top of the program&#8221; (without saying how I embed this YAML in the program). A bit later on I realised they meant embed via the &#8220;set&#8221; command.
</p></blockquote>
<p>This is an idea that comes from Rails, which I like and decided to port into Dancer&#8217;s conventions: You can set common and global configuration in a single file (here named <code>config.yml</code>. But if you want to be able to switch between different configuration contexts easily (like development to a production) then you can use <em>environment configuration files</em>.</p>
<p>When starting your Dancer app, you can choose which environment you want to enable, dancer will then first load the config.yml file, and then the environment-specific one.</p>
<p>This is pretty convinient for switching log levels, or even the strictness of the code. But again, all of this is optional, you can go without configuration files, putting all your settings along with your code, using &#8211; as you spoted it &#8211; the <code>set</code> keyword.</p>
<blockquote><p>
Overall, I think the documentation is reasonably thorough but just needs some love to clean it up into a more learning-friendly structure, with some sections shrunk down in the main Dancer page to just the most basic and common uses and references out to other pages for using more advanced features.
</p></blockquote>
<p>As I said above, this is a work-in-progress in the devel branch and should be released, if not with 1.18 (the next stable release), with 1.2.</p>
<blockquote><p>
Stuck on something I wasn&#8217;t sure about, I resorted to running the built in skeleton generator (mentioned prominently on the Dancer::Cookbook page) to at least get a better idea of what I was supposed to be doing.</p>
<p>C:\Users\Adam>dancer -a top100<br />
+ top100<br />
+ top100\views<br />
+ top100\views\index.tt<br />
+ top100\views\layouts<br />
+ top100\views\layouts\main.tt<br />
+ top100\environments<br />
+ top100\environments\development.yml<br />
+ top100\environments\production.yml<br />
+ top100\config.yml<br />
+ top100\app.psgi<br />
+ top100\public<br />
+ top100\public\css<br />
+ top100\public\css\style.css<br />
+ top100\public\css\error.css<br />
+ top100\public\images<br />
+ top100\public\404.html<br />
+ top100\public\dispatch.fcgi<br />
+ top100\public\dispatch.cgi<br />
+ top100\public\500.html<br />
+ top100\top100.pm<br />
+ top100\top100.pl</p>
<p>For a few seconds this shocked me, because compared to the simplicity of helloworld.pl this is a lot more files.
</p></blockquote>
<p>Well, I understand it can shock you if you expect to build your app with only one Perl script, but wait, you&#8217;re asking the scaffolding script to&#8230; well scaffold something! :) So yes, it creates a full-featured application skeleton, and that&#8217;s what it&#8217;s designed for.</p>
<p>We could imagine some kinds of scaffolding-levels maybe though, in order to let the user choose which features they want in their scaffolded application.</p>
<blockquote><p>
At this point I hadn&#8217;t even remotely considered the idea of site-customising my error pages, and there&#8217;s 5 entirely different types of Perl application files in this list. I (newbie me) don&#8217;t even know what PSGI is, let alone why I need one. And don&#8217;t get why I have a dispatch.cgi in addition to my top100.pl script.</p>
<p>Frankly, I don&#8217;t even really WANT to know what all these things are (yet?). But this did at least confirm where all the files should be living and the demo app did actually start and run properly. So in my case, it solved the problem I needed to solve.</p>
<p>But I certainly don&#8217;t want to use it as the basis of my Top 100 site. It&#8217;s just a bit overwhelming for my level of experience, and I don&#8217;t want to have to go exploring and work out what all these different files do, so I know which ones are safe to delete.
</p></blockquote>
<p>Well, the scaffolding tool is here to makes your life easier if you want to build a full-featured application with Dancer. So yes, it provides you with any file you might need for Plack deployment, layout design, and error pages customizations. It&#8217;s designed for that actually.</p>
<blockquote><p>
Templating was largely straight forward, mostly because the docs do everything to steer me towards Template Toolkit short of installing it for me (yes, you have to install Template Toolkit yourself to get the generated skeleton website working).</p>
<p>I suspect the reason for this is because their embedded default templates are not PARTICULARLY featured. The documentation sums up the feature set of the built in templates as the following.</p>
<p>< % var1 %></p>
<p>No other features are described, making Template Toolkit the obvious choice.:)
</p></blockquote>
<p>Indeed the default template engine that comes with Dancer is utterly limited, and that was also a choice. If the user wants complex template support, they have to upgrade to a powerful template engine, and CPAN has plenty of them.</p>
<blockquote><p>
I&#8217;m totally fine with this, but what I&#8217;m not entirely sure about is why on earth they have chosen to make Dancer&#8217;s default tag style for Template Toolkit different to Template Toolkit&#8217;s default tag style for Template Toolkit.</p>
<p>The only reason I could uncover from the documentation is that it makes TT compatible with their built in template engine. The one whose list of features is &#8220;variables&#8221;.</p>
<p>The only other guess other than &#8220;we like it more that way&#8221; I can make are that it&#8217;s done to be compatible with Sinatra, the Ruby toolkit I&#8217;ve never heard of but which I&#8217;m told was the inspiration for Dancer.
</p></blockquote>
<p>Yes, I must say this was a bad idea, my fault here. At the very begining of Dance&#8217;s development I was really in the idea of <em>porting</em> Sinatra into Perl, and I thought it should be a good idea to use the same template tags as they do in Rubyland. Time said it wasn&#8217;t, as every Perl developer expect TT to use <code>[% %]</code>. So we might consider going back on this, in the future, but that would mean some backward compatibility issues, which is something I want to avoid.</p>
<blockquote><p>
Switching it back to regular Template Toolkit tag style requires a slightly annoying block of config file entries I can easily imagine myself repeating in every Dancer program I will ever write.</p>
<p>To help you in gauging my annoyance level on this topic, allow me to show you now the complete working Dancer application at the end of this week.</p>
<p>#!/usr/bin/perl<br />
 <br />
use Dancer;<br />
use Template;<br />
use CPANDB {<br />
    maxage => 3600 * 24 * 7,<br />
};<br />
 <br />
# Configuration block<br />
set template => &#8216;template_toolkit&#8217;;<br />
set engines  => {<br />
    template_toolkit => {<br />
        start_tag => &#8216;[%',<br />
        stop_tag  => '%]&#8216;,<br />
    },<br />
};<br />
 <br />
# Route block<br />
get &#8216;/&#8217; => sub {<br />
    template &#8216;index&#8217;;<br />
};<br />
 <br />
dance;
</p></blockquote>
<p>Well, you could have put that in config.yml. But I agree with you, this is too much configuration for making Dancer behaving &#8220;the default TT way&#8221;. We should fix that I suppose.</p>
<blockquote><p>
It&#8217;s not a problem as such, but I&#8217;m sure it&#8217;s one of those things that&#8217;s going to niggle at me. If I wasn&#8217;t trying to emulate a newbie, I&#8217;d probably switch over to the Template::Tiny plugin in the short term. Unfortunately, it&#8217;s not particularly well known and so is probably out of bounds for this competition.</p>
<p>Given their strong preference for Template Toolkit, in their situation I&#8217;d probably have inlined the entire Template::Tiny package as the &#8220;house template&#8221; engine. Then you still have a direct upgrade path when people hit a feature T:Tiny didn&#8217;t support but you get to keep the default tag style. But the current predates Template::Tiny, and so be it.</p>
<p>I also had a momentary confusion over whether I should call my template &#8220;index&#8221; or &#8220;index.tt&#8221; or &#8220;index.html&#8221; or &#8220;index.html.tt&#8221;, but I put that mostly down to playing with Mojo&#8217;s double-dotted templates (which I&#8217;ll get to later). A quick look at the generated skeleton made it pretty clear what the naming is.
</p></blockquote>
<p>In the future, I plan to let template engines define their template extensions. So it will be less confusing for the user.</p>
<blockquote><p>
Adding the static files was very simple and easy to understand, following the convention of &#8220;if there&#8217;s a &#8220;public&#8221; directory, everything in it is a static file&#8221;.</p>
<p>However, I did hit a problem when I tried to add my logo image.</p>
<p>Weirdly, although my Dancer application was happily sending me css and my favicon.ico file, it didn&#8217;t appear to support PNG images. Bemused, I placed my first (legitimate) visit to the #dancer channel to ask a What The Hell.</p>
<p>Dancer uses MIME::Types under the covers, and the bug only happens on Windows, and they confirmed they can replicate it. Beyond that there&#8217;s no more information yet, but I&#8217;ve worked around the problem temporarily on my Dancer application by converting the PNG files to GIF.</p>
<p>And given the speed with which they chased down the previous Windows problems, I&#8217;m hopefully that by next week the problem will have gone away.
</p></blockquote>
<p>Indeed, I think we&#8217;re doomed with Windows environments ;) We have a lead though on this PNG-Win32-IE-only (!!) issue, and we coudl imagine it&#8217;s fixed by the next round, hopefully.</p>
<blockquote><p>
[...]<br />
Overall, the process was relatively straight forward with the exception of the PNG problem and a general feel that the documentation/tools dump you in the deep end a bit too quickly and need polishing.
</p></blockquote>
<p>So as I understand it, no major issue there, except for the overkill configuration needs to get TT behaves as you expected. The documentation is being completely reorganized for the next stable release and we should fix that PNG issue pretty soon.</p>
<p>See you next round, and happy dancing!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/04/15/re-mojo-vs-dancer-week-2-templates-and-images/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Dancer talk at French Perl Workshop 2010</title>
		<link>http://www.sukria.net/fr/archives/2010/04/14/dancer-talk-at-french-perl-workshop-2010/</link>
		<comments>http://www.sukria.net/fr/archives/2010/04/14/dancer-talk-at-french-perl-workshop-2010/#comments</comments>
		<pubDate>Wed, 14 Apr 2010 07:34:17 +0000</pubDate>
		<dc:creator>sukria</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[FPW2010]]></category>
		<category><![CDATA[linkedin]]></category>
		<category><![CDATA[Perl]]></category>

		<guid isPermaLink="false">http://www.sukria.net/fr/?p=1501</guid>
		<description><![CDATA[For those who will be around Calais in June, I&#8217;ll give a talk about Dancer at FPW2010. Franck will also speak about Plack so we can imagine we&#8217;ll have interesting time speaking about state-of-the-art web development. I think my talk &#8230; <a href="http://www.sukria.net/fr/archives/2010/04/14/dancer-talk-at-french-perl-workshop-2010/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>For those who will be around Calais in June, I&#8217;ll give <a href="http://journeesperl.fr/fpw2010/talk/2712">a talk about Dancer</a> at <a href="http://journeesperl.fr/fpw2010/index.html">FPW2010</a>.</p>
<p><a href="http://journeesperl.fr/fpw2010/talk/2701">Franck will also speak about Plack</a> so we can imagine we&#8217;ll have interesting time speaking about state-of-the-art web development.</p>
<p>I think my talk will be divided into two parts: an introduction to Dancer first, covering all of its core features (basically a refresh of <a href="http://www.slideshare.net/asukrieh/writing-webapps-with-perl-dancer">my previous talk about Dancer</a>); and a second part dedicated to cover all the new stuff we&#8217;ve been working on since we opened the development branch. This last part will be a teaser for the upcoming version 1.2, actually.</p>
<p>Oh, and as a bonus, we may unveil the official Dancer logo during the talk, if it&#8217;s ready ;)</p>
<p>See you there!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.sukria.net/fr/archives/2010/04/14/dancer-talk-at-french-perl-workshop-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
