[Catalyst-dev] [Catalyst] Catalyst Book Authoring

Zbigniew Lukasiak zzbbyy at gmail.com
Wed Oct 18 09:20:59 CEST 2006


Hi Jonathan,

I'll start directly - I would like to see the InstantCRUD module
mentioned in your book.  Since beginning I was designing it as a kind
of learning material so inclusion in your book would be important for
the validation of my whole work.

I do understand that you cannot describe every Catalyst related module
there, and that the still a bit experimental nature of Instant would,
most probably, not meet the criteria you use in choosing modules. But
there is still some time and if you describe your criteria, we
InstantCRUD authors can try to meet them by the deadline.

--
Zbyszek

On 9/6/06, Jonathan Rockway <jon at jrock.us> wrote:
> Hello,
>
> Sorry for the delay in following up with you.  I've been trying to
> finish up some other projects so I can have some time to work on writing :)
>
> Anyway, here's what I am thinking in terms of an outline.  Some chapters
> may make more sense if split up or combined. I'm cc-ing the Catalyst
> developer list since there are a number of people who are interested in
> helping with the book effort in one way or another, and I'd like to keep
> them in the loop.
>
> Preliminary outline:
>
> 0. Prerequisites
>  - where to learn about perl (perl knowledge assumed for this book)
>  - installing Catalyst
>  - where to go for help
>
> 1. Creating a Catalyst app
>  - making a skeleton application
>  - setting up a DBIC database "model"
>   - with "helpers"
>  - setting up a TT "view"
>  - writing a small "controller"
>  - running your skeleton app
>  - making changes and seeing the result
>
> 2. Expanding the application
>  - creating a form
>  - creating logic that parses a form
>  - adding configurability via a config file
>  - adding data to the database
>  - etc., basic "CRUD" operations (CRUD = create, retrieve, update, delete)
>  * example for this section should be something like an address book
>
> 3. Learning more about the database
>  - [I'm thinking that Matt S. Trout, the author of DBIx::Class, should
>     write this chapter.  Might not be appropriate as "Chapter 3".]
>
> 4. Building a more complex, multi-page application.  Probably online
>    shopping cart type of thing.  Look up products, fill out forms,
>    create reports, etc.
>  - Action chaining
>  - Action classes
>  - Sessions and Users (the big thing)
>
> 5. Exploiting Catalyst to ease implementation of current hot web topics.
>  - RSS feeds
>   * logic behind making an "RSS" view and mixing it with your HTML view
>  - Javascript interface (AJAX)
>  - this chapter is mostly to expose Catalyst features through examples
>    (people like "cool" things)
>
> 6. Building your own model.  Perhaps implement a filesystem-based wiki
>    or blog.  (Writing a filesystem-based blog is how I learned Catalyst,
>    and was the topic of my talk at the perl conference.)
>
> 7. World tour of catalyst plugins and base classes (but we might do this
>    as we go along, or in section 5).
>
> 8. Testing (might build this gradually, rather than wait until the end)
>  - unit tests
>  - WWW::Mechanizie
>  - WWW::Selenium
>
> 9. Deploying the application
>  - Apache + mod_perl
>   - or FastCGI
>  - Lighttpd
>  - PARs for sending to end users
>
> 10. Where to go from here
>  - Turn useful parts of your application into CPAN modules
>  - Hack on the Catalyst source
>  - (etc.?)
>
> As always, thanks for your interest in Catalyst!
>
> Regards,
> Jonathan Rockway
>
> Douglas Paterson wrote:
> > Jonathan,
> >
> > Thanks for your reply, it has been very helpful. There is general agreement
> > that a book showing people how to put together a web application using
> > Catalyst is the best way forward at this point, so I'm pleased that we're on
> > the right track.
> >
> > When you have a powerful and flexible system, you do want to pick a path
> > through it for the reader. Sometimes, there can be too much choice, and the
> > value of a book can just be picking that path.
> >
> > Are Catalysts's OO concepts pretty central to its design? If they are, and
> > for an MVC framework I guess they would be, I think it would probably be a
> > good idea to spend some time to get readers comfortable with these.
> >
> > You say you are excited by this project - how much of this would you be
> > interested in writing? At the very least, I think you're in an excellent
> > position to help me put together an outline.
> >
> > Douglas
> >
> >
> > -----Original Message-----
> > From: Jonathan Rockway [mailto:jon at jrock.us]
> > Sent: Wednesday, August 30, 2006 10:14 PM
> > To: douglasp at packtpub.com
> > Subject: Re: [Catalyst] Catalyst Book Authoring
> >
> >
> >> Anyway, the book I was thinking of would show the reader how to put
> >> together a website using Catalyst, with no prior knowledge of Catalyst
> >> assumed. In your view, do you think that's the book that would be
> >> welcomed by the community, or do you think their needs are more "advanced"
> > than that?
> >
> > I think this is exactly what we need.  The problem (for beginners) with
> > Catalyst is that there are too many different ways to do things.  My
> > approach would be to walk the reader through designing a typical web
> > application with a "restricted" set of Catalyst features.  Rather than focus
> > on the flexibility inherent in being able to use any one of the 29 available
> > templating modules on CPAN, I would stick to just the Template Toolkit (as
> > the View).  The same goes for DBIx::Class(::Schema) for the database model.
> > These are what most people use anyway, so this approach will give the reader
> > maximum ability with minimum remembering-the-names-of-CPAN-modules :)
> >
> > As the user gets more comfortable with the basics, we can talk about the
> > more advanced Catalyst features.  Towards the end of the book, we can
> > briefly mention "other ways" to validate forms, generate HTML or XML, read
> > databases, etc.  The user will understand the concept of modules and
> > Catalyst by now, so it will be pretty easy to understand (and
> > appreciate) the flexibility that the CPAN provides.
> >
> > I also think that a brief introduction to the object orientation concepts
> > that Catalyst makes use of would be helpful, also.  Perl's OO didn't make
> > sense to me when I started learning perl, and I think a lot of potential
> > readers will be in the same boat.
> >
> > Finally, I think it would also be nice to have brief sidebars from time to
> > time covering useful concepts that aren't strictly Catalyst related.
> >  Maybe something about "Path::Class" when talking about filenames, "YAML"
> > when talking about configuration files, etc.
> >
> > Anyway, thanks for your interest!  I'm pretty excited about this :)
> >
> > Regards,
> > Jonathan Rockway
> >
> >
> >
>
> _______________________________________________
> Catalyst-dev mailing list
> Catalyst-dev at lists.rawmode.org
> http://lists.rawmode.org/mailman/listinfo/catalyst-dev
>


-- 
Zbigniew Lukasiak
http://brudnopis.blogspot.com/



More information about the Catalyst-dev mailing list