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
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.
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.var...@gmail.com> wrote:
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
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
Mark Ramm wrote: >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
>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
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.
> 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" :)
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.
Kevin Dangoor wrote: >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".
This seems to me that you are preparing to write a [future] book where people can read about [past] things. :-\
> 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.)
> 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. ;)
> 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 :)