<?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>Engwar &#187; catalyst</title>
	<atom:link href="http://engwar.com/tags/catalyst/feed" rel="self" type="application/rss+xml" />
	<link>http://engwar.com</link>
	<description>Chintana Wilamuna&#039;s weblog</description>
	<lastBuildDate>Wed, 30 Nov 2011 13:28:16 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
		<item>
		<title>StockTrader client using Catalyst</title>
		<link>http://engwar.com/post/93?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=stocktrader-client-using-catalyst</link>
		<comments>http://engwar.com/post/93#comments</comments>
		<pubDate>Thu, 05 Mar 2009 12:16:35 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[catalyst]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[stocktrader]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=93</guid>
		<description><![CDATA[I&#8217;ve been rewriting the Perl StockTrader client using Catalyst for the past week or so. The first version of the client was done using (gasp!) Perl/CGI. So it was about time to do it right. Thanks to the excellent documentation &#8230; <a href="http://engwar.com/post/93">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been rewriting the Perl StockTrader client using <a href="http://www.catalystframework.org/">Catalyst</a> for the past week or so. The first version of the client was done using (gasp!) Perl/<a href="http://search.cpan.org/dist/CGI.pm/CGI.pm">CGI</a>. So it was about time to do it right. Thanks to the excellent documentation Catalyst provide, it was a straightforward task.</p>
<p>The main annoyance I faced was the lack of a proper error reporting mechanism. When you have an error on your controller, the script that starts the server simply refuse to start you can see the following VERY helpful error message in the console.</p>
<p><code>Unknown error<br />
Compilation failed in require at /usr/share/perl5/Catalyst/Utils.pm line 270.<br />
Compilation failed in require at ./script/stocktrader_server.pl line 55.</code></p>
<p>You cannot find out where the error occured. Only conclusion that you can make out of this is that there is an error in one of your controllers. Errors in models are shown correctly as they should. Template errors can easily be fixed. If you haven&#8217;t been doing incremental development, meaning you add a little bit of code then start the server and see whether everything has worked ok up to now, you&#8217;ll be in serious trouble. If you have the habit of writing large amounts of code without testing and keep testing for the last minute, Catalyst will torture you and put you through hellish debugging sessions for hours. I spent an inordinate amount of time trying to figure out the error and finally spotted that I&#8217;ve forgotten to make a single variable lexically scoped with my.</p>
<p>I also configured Log4perl to log all the errors to a log file and enabled the option to log warnings. Sadly I could not see any more log messages than I see in the console.</p>
<p>That aside, Catalyst is a fantastic framework to write web applications if you know Perl. As a big fan of frameworks it&#8217;s so exciting to see high quality open source MVC frameworks being developed that drastically reduce the effort of building web applications. Whatever the language you&#8217;re comfortable in programming, you can easily find a decent MVC framework for it these days. Well .. almost.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/93/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Catalyst</title>
		<link>http://engwar.com/post/85?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=catalyst</link>
		<comments>http://engwar.com/post/85#comments</comments>
		<pubDate>Wed, 25 Feb 2009 21:48:05 +0000</pubDate>
		<dc:creator>Chintana</dc:creator>
				<category><![CDATA[catalyst]]></category>
		<category><![CDATA[mvc]]></category>
		<category><![CDATA[perl]]></category>

		<guid isPermaLink="false">http://engwar.com/?p=85</guid>
		<description><![CDATA[Last time I looked at Catalyst for a project, the time was really tight and had to do it by other means. This time however, I had slightly more time available so I started from Catalyst::Manual::Tutorial and boy, the docs &#8230; <a href="http://engwar.com/post/85">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Last time I looked at <a href="http://www.catalystframework.org/">Catalyst</a> for a project, the time was really tight and had to do it by other means. This time however, I had slightly more time available so I started from <a href="http://search.cpan.org/dist/Catalyst-Manual/lib/Catalyst/Manual/Tutorial.pod">Catalyst::Manual::Tutorial</a> and boy, the docs are amazingly well written. Kennedy Clark has done a wonderful job with the documentation.</p>
<p>Catalyst is a MVC framework written in Perl. If you&#8217;ve written any applications with Ruby on Rails or Django, the first thing you&#8217;ll notice is, like anything written in Perl, speed. Also, another difference that I see with Catalyst is the unprecedented flexibility it gives to the hands of the application developer. For a framework providing this level of flexibility, Catalyst is surprisingly easy to program with. Will write more about my Catalyst chronicles in another post.</p>
]]></content:encoded>
			<wfw:commentRss>http://engwar.com/post/85/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

