<br><br><div class="gmail_quote">On Mon, Feb 16, 2009 at 2:01 PM, Octavian Râsnita <span dir="ltr">&lt;<a href="mailto:orasnita@gmail.com">orasnita@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Good idea.<br>
<br>
I think that many beginners find hard to learn Catalyst if they are coming from another framework, or even worse, from CGI.pm, because right after they begin, they need to learn DBIx::Class, Template-Toolkit, YAML or Config::General, and they might not understand very fast if a certain piece of text is a Catalyst code, or a DBIC one or something else.<br>

<br>
So I think a good tutorial should start without using DBIC or a configuration file, and without using a view and a model.<br>
<br>
It should be that kind of example that &quot;You shouldn&#39;t do this, but it is ment for understanding Catalyst easier&quot;.<br>
<br>
So the first MyApp.pm should use only the Root.pm controller, and print a very short of html text using $c-&gt;response-&gt;body().<br>
<br>
The next sample should upgrade that example and show how Catalyst gets the parameters from a form, almost like CGI.pm does, and print the body in the same way, using the same warning that this code is not one that should be used.<br>

<br>
The next example should upgrade that sample app and tell why a view is needed, and how Catalyst can be used to forward to a certain view, tell how to configure a default view in MyApp.pm, and print the body using a view, but without using TT.<br>

<br>
The next example should show the advantage of using templates, introduce the TT view, the TT helper that creates the view automaticly, and print the page using a single .tt file, or a very small number of templates that create the page.<br>

<br>
There could be another sample that shows what kind of &quot;another view&quot; can be used to print the same content in a different way by just forwarding to it.<br>
<br>
Then maybe there would be good to introduce the configuration file, show how to use Config::General and why it is useful to use a config file.<br>
<br>
After the beginner started to understand how Catalyst works, how the actions work... the basic ones like Local, Index, Default, Private, Auto, introduce the model, and show a simple model that puts and gets the data in a more simple way, not by using DBI or DBIC.<br>

For example, it could open() a file and store the information to it.<br>
<br>
Then the model that should be teached should be the one that uses DBI, and show the user that he can have a $dbh object in any action, without needing to connect to the database by specifying each time the database name, username, password and other options.<br>

<br>
And only after the user will understand how Catalyst works, what means a model, teach them DBIx::Class which is pretty hard to understand if it is taught together with Catalyst without knowing any of them.<br>
<br>
Maybe here would be good a suggestion to stop and read a DBIx::Class tutorial, for understanding that module outside Catalyst, and understand even better which are the features offered by Catalyst and which are the ones offered by DBIC.<br>

<br>
Then... it could be much easier to understand how the authentication/authorization that uses DBIC works and other Catalyst features.<br>
<br>
It might sound too stupid, but for a beginner it should sound very stupid, and he should find it very easy to understand, with very little things to learn on each step, and finally he will see that he knows how to use Catalyst with its most important features.<br>

<br>
I also think that the explanation should be simple to understand even for those who don&#39;t know Perl at all.<br>
<br>
Octavian<br>
<br>
----- Original Message ----- From: &quot;Jay Kuri&quot; &lt;<a href="mailto:jayk@ion0.com" target="_blank">jayk@ion0.com</a>&gt;<br>
To: &lt;<a href="mailto:catalyst@lists.scsys.co.uk" target="_blank">catalyst@lists.scsys.co.uk</a>&gt;<br>
Sent: Monday, February 16, 2009 10:32 PM<br>
Subject: [Catalyst] RFC: New to Catalyst questions<div><div></div><div class="Wj3C7c"><br>
<br>
<br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Hello,<br>
<br>
So all this &#39;too many choices&#39; talk has got me thinking. &nbsp;I&#39;d like to<br>
put together some more web-available information for those<br>
transitioning to catalyst from other methods.<br>
<br>
To that end I&#39;m soliciting your thoughts on things that you found<br>
particularly hard to get a grip on when you started using catalyst.<br>
(or that you are currently having trouble with)<br>
<br>
My intent is to pick the ones that are needed most and write them up<br>
(or sponsor).<br>
<br>
My working list is as follows (in no particular order.)<br>
<br>
1) &#39;Getting&#39; DBIx::Class (starting from a straight SQL-users point of<br>
view)<br>
<br>
2) Basic Cat toolkit - the basic pieces you will want to produce your<br>
average web app.<br>
<br>
3) Walkthrough of creation of a simple app end to end.<br>
<br>
Any others?<br>
<br>
Jay<br>
<br>
<br>
<br>
_______________________________________________<br>
List: <a href="mailto:Catalyst@lists.scsys.co.uk" target="_blank">Catalyst@lists.scsys.co.uk</a><br>
Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" target="_blank">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br>
Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" target="_blank">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br>
Dev site: <a href="http://dev.catalyst.perl.org/" target="_blank">http://dev.catalyst.perl.org/</a> <br>
</blockquote>
<br>
<br>
_______________________________________________<br>
List: <a href="mailto:Catalyst@lists.scsys.co.uk" target="_blank">Catalyst@lists.scsys.co.uk</a><br>
Listinfo: <a href="http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst" target="_blank">http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst</a><br>
Searchable archive: <a href="http://www.mail-archive.com/catalyst@lists.scsys.co.uk/" target="_blank">http://www.mail-archive.com/catalyst@lists.scsys.co.uk/</a><br>
Dev site: <a href="http://dev.catalyst.perl.org/" target="_blank">http://dev.catalyst.perl.org/</a><br>
</div></div></blockquote></div><br>I think we should also consider branching on whether someone is experienced with perl or absolutely new.&nbsp; Catalyst certainly isn&#39;t for the new perl programmer, so there are some basics at the very bare minimum that need to be covered in perl first.&nbsp; <br clear="all">
<br>-- <br>Devin Austin<br><a href="http://www.dreamhost.com/r.cgi?326568/hosting.html">http://www.dreamhost.com/r.cgi?326568/hosting.html</a> - Host with DreamHost!<br>