Contents of Turbogears Book

0 views
Skip to first unread message

Sanjay

unread,
Sep 2, 2006, 2:29:44 AM9/2/06
to TurboGears
Is the Table of Contents of the book posted somewhere? Could not find
it.

I am new to web programming, although having experience in traditional
business systems. It would be really great if the book could guide on
how to develop a practical high performance big web application,
including these:

- Deployment/scalability/falut tolerance/caching/load balancing
- Identity management in scalable systems (somewhere I read that the
visit model might not work?)
- References to database scalability/fault tolerance
- Security
- Captcha system
- Sending and receiving e-mail
- Development methodology (considering agile methodology, TDD, having
multiple developers)
- Testing, Performance Testing
- any other thing needed for high performance complex websites that I
don't know/remember

Thanks
Sanjay

Jorge Vargas

unread,
Sep 2, 2006, 4:02:38 AM9/2/06
to turbo...@googlegroups.com
On 9/2/06, Sanjay <skpa...@gmail.com> wrote:
>
> Is the Table of Contents of the book posted somewhere? Could not find
> it.
>
it is subject to change since the final structure is not in yet, as
far as I know the info is not public yet

Mark/Kevin is it ok to post the TOC from svn?

> Thanks
> Sanjay
>
>
> >
>

Mark Ramm

unread,
Sep 2, 2006, 5:20:10 PM9/2/06
to turbo...@googlegroups.com
I'll clean things up to the best current version and post it tonight.

Thanks!


--
Mark Ramm-Christensen
email: mark at compoundthinking dot com
blog: www.compoundthinking.com/blog

Mark Ramm

unread,
Sep 2, 2006, 5:32:18 PM9/2/06
to turbo...@googlegroups.com
> - Deployment/scalability/falut tolerance/caching/load balancing

We cover this, but not in the detail you want. There will be an
article on this stuff in the next version of the web magazine O3,
which will cover more scalability issues than we have space for in the
book.

> - Identity management in scalable systems (somewhere I read that the
> visit model might not work?)

I think you're in OK shape with identity up to a fairly high traffic
load, but I don't know of anybody using it on the scale of wikipedia
or Yahoo, and I'm sure you'd have to tweak things to get the
performance you want at those levels.

> - References to database scalability/fault tolerance

This will depend on the database you use, and so I'd point you to the
refferences for Postgres, Oracle, MySQL, and SQL Server. If you're
planning to need to scale to this level an investment in SQLAlchemy up
front is likely to pay off for you over TurboGears default use of
SQLObject.

> - Security
> - Captcha system

We cover this briefly, but basically you're just using the same
security patterns as you need everywhere -- don't eval anything that
came from a user. Don't use user generated strings in SQL statments,
etc. The TurboBlog project has captcha's but we don't cover it in
the book at all.

> - Sending and receiving e-mail

This is done the standard python way.

> - Development methodology (considering agile methodology, TDD, having
> multiple developers)

We are a reference book on TurboGears, but there are a few agile
development tips here and there.

> - Testing, Performance Testing

There's a chapter on this.

> - any other thing needed for high performance complex websites that I
> don't know/remember

The purpose of the book is to get new people up and running quickly,
and to provide a bit of reference documentation for the areas that
need it. So we aren't focused on the high end of
scalability/complexity. Right now, the best place to get information
about that kind of stuff is to ask here on the list.

Mark Ramm

unread,
Sep 2, 2006, 5:48:08 PM9/2/06
to turbo...@googlegroups.com
The first half of it should be going up on Safari
(http://safari.phptr.com/) very soon, so it's probably a good time to
start publishing the TOC, as it's not likely to change too much from
here on out.

--Mark

On 9/2/06, Jorge Vargas <jorge....@gmail.com> wrote:
>

Sanjay

unread,
Sep 3, 2006, 1:37:47 AM9/3/06
to TurboGears
Thanks a lot for these quite informative posts!

Sanjay

Mark Ramm

unread,
Sep 3, 2006, 4:59:13 PM9/3/06
to turbo...@googlegroups.com
As requested, here is the latest version of the TurboGears book's
Table of Contents:

Title: Rapid Web Applications with TurboGears:
Subtitle: Using Python to Create Ajax-Powered Sites

Part I: TurboGears Fundamentals

1 Introduction to TurboGears
2 Getting Started with TurboGears
3 The Architecture of a TurboGears Application

Part II: Building a TurboGears Application

4 Creating a Simple Application
5 Enhancing our Bookmark Application

Part III: Exploring a Real World TurboGears Application

6 Exploring More Complex Models in Fast Track
7 Controllers, Views, and JavaScript in the Fast Track
8 RSS, Cookies, and Dynamic Views in Fast Track
9 Ajax and Fast Track Projects

Part IV: SQLObject and TurboGears Models

10 SQLObject Basics
11 Mastering SQLObject
12 Customizing SQLObject Behavior

Part V: TurboGears View Technologies

13 Dynamic Templates with Kid
14 Creating better JavaScript with MochiKit
15 Effective Ajax with MochiKit
16 TurboGears Widgets: Bringing CSS, XHTML, and JavaScript Together in
Reusable Components

Part VI: CherryPy and TurboGears Controller Technologies

17 CherryPy and TurboGears Decorators
18 TurboGears Deployment

Part VII: TurboGears Extras

19 TurboGears Toolbox and Extras
20 Internationalization
21 Testing a TurboGears Application
22 TurboGears Identity and Security

Appendix A: SQLAlchemy

jose

unread,
Sep 4, 2006, 2:13:00 AM9/4/06
to turbo...@googlegroups.com
Why only an appendix about SQLAlchemy? I supposed SA is to become the
default ORM in the next versione of TG. =-O

jo

Jorge Godoy

unread,
Sep 4, 2006, 7:52:44 AM9/4/06
to turbo...@googlegroups.com
jose <j...@sferacarta.com> writes:

> Why only an appendix about SQLAlchemy? I supposed SA is to become the
> default ORM in the next versione of TG. =-O

I don't believe that such a change would happen for the next release.
Specially with all the things needed to do that, specially on the toolbox.

--
Jorge Godoy <jgo...@gmail.com>

Kevin Dangoor

unread,
Sep 4, 2006, 10:51:19 AM9/4/06
to turbo...@googlegroups.com
On Sep 4, 2006, at 2:13 AM, jose wrote:

>
> Why only an appendix about SQLAlchemy? I supposed SA is to become the
> default ORM in the next versione of TG. =-O

There are a couple of reasons for this.

1) SQLObject is still the standard, and the book cover 1.0
2) SQLAlchemy has very good docs as it is

With #2, I'm not saying that there's no place for a book covering it.
I'm just saying that it's not as critical as it was to get good
SQLObject coverage.

I'm not certain which version of TurboGears will be the first to have
SQLAlchemy as the default ORM. Support for SQLAlchemy will get
stronger and stronger with each release until it becomes a natural
transition. (Use of SQLAlchemy today is kind of like "from __future__
import SQLAlchemy" :)

Kevin

Cliff Wells

unread,
Sep 4, 2006, 8:03:33 PM9/4/06
to turbo...@googlegroups.com
On Mon, 2006-09-04 at 10:51 -0400, Kevin Dangoor wrote:

> I'm not certain which version of TurboGears will be the first to have
> SQLAlchemy as the default ORM. Support for SQLAlchemy will get
> stronger and stronger with each release until it becomes a natural
> transition. (Use of SQLAlchemy today is kind of like "from __future__
> import SQLAlchemy" :)

But we don't want the same problem the Ruby books had with being
obsolete by the time they hit the buyer's hands. Books sit on shelves
for months, so it seems reasonable to expect that someone buying a book
might be making the purchase long after any expected transition.

That being said, an appendix should be fine as long as it's detailed
enough.

Cliff

jose

unread,
Sep 5, 2006, 2:43:01 AM9/5/06
to turbo...@googlegroups.com
Kevin Dangoor wrote:

>import SQLAlchemy".
>
>
This seems to me that you are preparing to write a [future] book where
people can read about [past] things. :-\

jo

Kevin Dangoor

unread,
Sep 5, 2006, 7:18:16 AM9/5/06
to turbo...@googlegroups.com
On Sep 5, 2006, at 2:43 AM, jose wrote:

>
> Kevin Dangoor wrote:
>> I'm not certain which version of TurboGears will be the first to have
>> SQLAlchemy as the default ORM. Support for SQLAlchemy will get
>> stronger and stronger with each release until it becomes a natural
>> transition. (Use of SQLAlchemy today is kind of like "from __future__
>> import SQLAlchemy".
>>
>>
> This seems to me that you are preparing to write a [future] book where
> people can read about [past] things. :-\

The book that we've written is easily, in my opinion, the best
documentation for TurboGears 1.0 available. It's very hard to write a
book for software that does not yet exist (especially if you're
involved in the creation of that software and have 24 hour days).
This is open source software... release early, release often
generally means "release without docs and hope that they follow
along". (I plan to use docs.turbogears.org to ensure that the online
docs aren't too far removed from the current state of development,
though.)

Kevin

Mark Ramm

unread,
Sep 5, 2006, 9:19:08 AM9/5/06
to turbo...@googlegroups.com
> This seems to me that you are preparing to write a [future] book where
> people can read about [past] things. :-\

We have a choice between 1) writing a book that covers right now
(TurboGears 1.0) really well, and points to the future as best we can,
or 2) waiting for the future to arrive and documenting that.

Option 2 is problematic, because people want docs now (they would have
preferred yesterday!), and because the future has it's own future.
Once we get SQLAlchemy fully integrated, there will inevitably be
something else new and cool just around the corner, and if we waited
on that, we'd be stuck never releasing the book. ;)

So we'll try to keep online docs up to date all the time, the book as
it is should provide a good tutorial for TurboGears for quite a while.

If we wait for perfect docs, we'll never have good ones. And I for
one would rather have good docs now, than perfect docs at some
unspecified time in the future. ;)

--Mark

Sylvain Hellegouarch

unread,
Sep 5, 2006, 9:22:06 AM9/5/06
to turbo...@googlegroups.com

> We have a choice between 1) writing a book that covers right now
> (TurboGears 1.0) really well, and points to the future as best we can,
> or 2) waiting for the future to arrive and documenting that.
>
> Option 2 is problematic, because people want docs now (they would have
> preferred yesterday!), and because the future has it's own future.
> Once we get SQLAlchemy fully integrated, there will inevitably be
> something else new and cool just around the corner, and if we waited
> on that, we'd be stuck never releasing the book. ;)
>
> So we'll try to keep online docs up to date all the time, the book as
> it is should provide a good tutorial for TurboGears for quite a while.
>
> If we wait for perfect docs, we'll never have good ones. And I for
> one would rather have good docs now, than perfect docs at some
> unspecified time in the future. ;)
>

Ths seems reasonable and I'm prrety sure you've done a great work
already to keep up with TG evolution throughout the last few months.
In any case you can still release an updated book in 2008 :)

- Sylvain

Reply all
Reply to author
Forward
0 new messages