<?xml version="1.0" encoding="UTF-8"?>
<commit>
  <added type="array"/>
  <modified type="array">
    <modified>
      <diff>@@ -1,4 +1,4 @@
-#LyX 1.6.0 created this file. For more info see http://www.lyx.org/
+#LyX 1.6.1 created this file. For more info see http://www.lyx.org/
 \lyxformat 345
 \begin_document
 \begin_header
@@ -57,7 +57,7 @@ Lift provides a a pretty consistent collection of helper artifacts.
  Hence it is important to be aware what is provided by Lift already for
  you to use so you wont have to spend time coding something that already
  exists.
- We won;t be detailing here every single helper or helper function as you
+ We won't be detailing here every single helper or helper function as you
  can easily discover them and enjoy using them in your applciation.
 \end_layout
 
@@ -1320,7 +1320,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 CSSHelper example
 \end_layout
 
@@ -1449,7 +1448,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 fixCSS example
 \end_layout
 
@@ -1719,7 +1717,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Mailer example
 \end_layout
 
@@ -1794,7 +1791,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 NamedPF exmaple
 \end_layout
 </diff>
      <filename>apdx-helpers.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -106,7 +106,11 @@ log4j.xml
 \family default
  configuration file in the class path and if it finds either it will use
  them for configuration.
- Failing that, it will fall back to configuring log4j using the 
+ Failing that, it will fall back to configuring log4j using the
+\begin_inset Newline linebreak
+\end_inset
+
+
 \family typewriter
 LogBoot.defaultProps
 \family default
@@ -172,7 +176,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Enabling slf4j
 \begin_inset CommandInset label
 LatexCommand label
@@ -231,7 +234,7 @@ Basic Logging
 Logging in Lift is performed via the net.liftweb.util.Log object.
  This object provides some basic log methods which we'll summarize here.
  Each log method comes in two forms: one with just an Object argument, and
- one with an Object and Throwable argument.
+ one with Object and Throwable arguments.
  These correspond one-to-one with the log4j log methods, although the parameters
  are passed by-name; this is done so that computation of the log message
  can be deferred.
@@ -256,38 +259,38 @@ tracing
 \begin_inset Quotes erd
 \end_inset
 
- of processing, even more detailed than debug level
+ of processing, even more detailed than debug level.
 \end_layout
 
 \begin_layout Description
 debug Logs a message at debug level.
  This level is usually used to output internal variable values or other
- information that is useful in debugging and troubleshooting an app
+ information that is useful in debugging and troubleshooting an app.
 \end_layout
 
 \begin_layout Description
 info Logs a message at info level.
- This level is appropriate for general information about the app
+ This level is appropriate for general information about the app.
 \end_layout
 
 \begin_layout Description
 warn Logs a message at warning level.
  This level should be used for reporting issues that are in error but can
  be handled cleanly, such as someone trying to submit a character string
- for a numeric field value
+ for a numeric field value.
 \end_layout
 
 \begin_layout Description
 error Logs a message at error level.
  This level should be used for messages relating to errors that can't be
- handled cleanly, such as a failure to connect to a backing database
+ handled cleanly, such as a failure to connect to a backing database.
 \end_layout
 
 \begin_layout Description
 fatal Logs a message at the fatal level.
  This level should be used for messages that relate to conditions under
  which the application cannot continue to function, such as an OutOfMemory
- exception
+ exception.
 \end_layout
 
 \begin_layout Description
@@ -300,12 +303,12 @@ reference &quot;sub:Schema-Mapping&quot;
 
 \end_inset
 
-)
+).
 \end_layout
 
 \begin_layout Description
 assertLog This allows you to test an assertion condition and if true, logs
- the assertion as well as a given message
+ the assertion as well as a given message.
 \end_layout
 
 \begin_layout Standard
@@ -336,7 +339,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Some example logging
 \begin_inset CommandInset label
 LatexCommand label
@@ -379,7 +381,12 @@ def processLogin(name : String, password : String) = {
 
 \begin_layout Plain Layout
 
-    Log.assertLog(User.currentUser.isDefined, &quot;Redundant authentication!&quot;)
+    Log.assertLog(User.currentUser.isDefined, 
+\end_layout
+
+\begin_layout Plain Layout
+
+                  &quot;Redundant authentication!&quot;)
 \end_layout
 
 \begin_layout Plain Layout
@@ -532,7 +539,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Mapper Logging
 \begin_inset CommandInset label
 LatexCommand label
@@ -550,7 +556,12 @@ name &quot;lst:Mapper-Logging&quot;
 
 \begin_layout Plain Layout
 
-DB.addLogFunc((query, time) =&gt; Log.debug(() =&gt; (query + &quot;:&quot; + time + &quot;ms&quot;)))
+DB.addLogFunc((query, time) =&gt; 
+\end_layout
+
+\begin_layout Plain Layout
+
+  Log.debug(() =&gt; (query + &quot;:&quot; + time + &quot;ms&quot;)))
 \end_layout
 
 \end_inset</diff>
      <filename>apdx-logging.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -54,7 +54,7 @@ name &quot;cha:Message-Handling&quot;
 \end_layout
 
 \begin_layout Standard
-When we talk about message handling in Lift we're talking about how you
+When we talk about message handling in Lift, we're talking about how you
  provide feedback to the users of your application.
  While there are already a lot of mechanisms for displaying data to the
  user via snippets, views, etc, properly binding and setting up HTML-level
@@ -112,7 +112,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Using messages in form processing
 \begin_inset CommandInset label
 LatexCommand label
@@ -135,6 +134,10 @@ object data extends RequestVar[String](&quot;&quot;)
 
 \begin_layout Plain Layout
 
+\end_layout
+
+\begin_layout Plain Layout
+
 def addNote (xhtml : NodeSeq) : NodeSeq = {
 \end_layout
 
@@ -281,7 +284,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Custom message labels
 \begin_inset CommandInset label
 LatexCommand label
@@ -362,7 +364,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Per-id messages
 \begin_inset CommandInset label
 LatexCommand label</diff>
      <filename>apdx-message-handling.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -1324,7 +1324,8 @@ RequestVar
  interface to obtain the EM via local lookup (i.e.
  via the 
 \family typewriter
-javax.persistence.Persistence
+javax.persistence.\SpecialChar \-
+Persistence
 \family default
  class), as shown in listing 
 \begin_inset CommandInset ref
@@ -1702,7 +1703,11 @@ iver&quot;/&gt;
 \begin_layout Standard
 One final note in regard to transactions is how they're affected by Exceptions.
  Per the spec, any exceptions thrown during the scope of a transaction,
- other than 
+ other than
+\begin_inset Newline linebreak
+\end_inset
+
+
 \family typewriter
 javax.persistence.NoResultException
 \family default
@@ -2316,7 +2321,7 @@ Positional
 parameters 
 \family typewriter
 select user from User where (user.name like ? or user.email like ?) and user.widget
-s &gt; :widgetCount
+s &gt; ?
 \end_layout
 
 \begin_layout Standard
@@ -2449,9 +2454,20 @@ It's important to understand that in JPA the provider isn't required to
  Using the flush method forces the provider to write any pending changes
  to the database and immediately throw any exceptions resulting from any
  violations.
- As a convenience, we've written the mergeAndFlush, persisteAndFlush, and
- removeAndFlush methods to do persist, merge and remove with a subsequent
- flush, as shown in listing 
+ As a convenience, we've written the 
+\family typewriter
+mergeAndFlush
+\family default
+, 
+\family typewriter
+persistAndFlush
+\family default
+, and 
+\family typewriter
+removeAndFlush
+\family default
+ methods to do persist, merge and remove with a subsequent flush, as shown
+ in listing 
 \begin_inset CommandInset ref
 LatexCommand ref
 reference &quot;lst:Auto-flush-methods&quot;</diff>
      <filename>chap-JPA.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -1248,6 +1248,7 @@ status open
 status open
 
 \begin_layout Plain Layout
+
 http://lamp.epfl.ch/~phaller/doc/haller07coord.pdf
 \end_layout
 </diff>
      <filename>chap-ajax_comet.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -277,7 +277,6 @@ status open
 \begin_inset Caption
 
 \begin_layout Plain Layout
-
 Standard import statements
 \begin_inset CommandInset label
 LatexCommand label
@@ -295,12 +294,7 @@ name &quot;lst:Standard-import-statements&quot;
 
 \begin_layout Plain Layout
 
-import _root_.net.liftweb._
-\end_layout
-
-\begin_layout Plain Layout
-
-import http._
+import _root_.net.liftweb.http._
 \end_layout
 
 \begin_layout Plain Layout
@@ -310,7 +304,7 @@ import S._
 
 \begin_layout Plain Layout
 
-import util._
+import _root_.net.liftweb.util._
 \end_layout
 
 \begin_layout Plain Layout
@@ -917,7 +911,8 @@ Because Lift will implicitly search for suffixes, it's best to leave the
 \begin_layout Standard
 then Lift will use the appropriate template based on the user's requested
  language if a corresponding template is available.
- For more information regarding internationalization please see 
+ For more information regarding internationalization please see appendix
+ 
 \begin_inset CommandInset ref
 LatexCommand ref
 reference &quot;cha:Internationalization&quot;</diff>
      <filename>chap-lift_architecture.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -68,7 +68,7 @@ name &quot;cha:Maven&quot;
 In this chapter we'll discuss the Maven build tool and some of the basics
  of configuration and usage.
  Maven is what Lift uses for build management, so becoming acquainted with
- with Maven is important to getting the most out of Lift.
+ Maven is important to getting the most out of Lift.
  If you're already familiar with Maven you can safely skip this chapter.
  
 \end_layout
@@ -1105,7 +1105,7 @@ zed layout for projects.
 \begin_layout Description
 &lt;application_root&gt;/src/main/scala This directory is where you place your
  Scala source, such as snippets, model objects, and any libraries you write.
- The subfolder structure follows the traditional Java packaging style
+ The subfolder structure follows the traditional Java packaging style.
 \end_layout
 
 \begin_layout Description
@@ -1113,7 +1113,7 @@ zed layout for projects.
  your application, such as images, XHTML templates, JavaScript and CSS are
  placed under this directory.
  This directory is essentially what is packaged into the WAR in addition
- to the output from your Scala sources
+ to the output from your Scala sources.
 \end_layout
 
 \begin_layout Description
@@ -1134,7 +1134,7 @@ reference &quot;sub:embed-tag&quot;
 \end_inset
 
 , templates placed in this directory cannot be viewed directly by clients,
- but are available to other templates
+ but are available to other templates.
 \end_layout
 
 \begin_layout Description
@@ -1144,7 +1144,7 @@ reference &quot;sub:embed-tag&quot;
 \family typewriter
 src/main/scala
 \family default
-, the subfolder structure follows the traditional Java packaging style
+, the subfolder structure follows the traditional Java packaging style.
 \end_layout
 
 \end_body</diff>
      <filename>chap-maven.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -148,15 +148,15 @@ MVC
 
  pattern
 \begin_inset Foot
-status collapsed
+status open
 
 \begin_layout Plain Layout
 \begin_inset Flex URL
-status collapsed
+status open
 
 \begin_layout Plain Layout
 
-http://heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf
+http://java.sun.com/blueprints/patterns/MVC.html
 \end_layout
 
 \end_inset
@@ -170,11 +170,11 @@ http://heim.ifi.uio.no/~trygver/1979/mvc-2/1979-12-MVC.pdf
  One of the original Java web application technologies that's still in use
  today is JSP, or Java Server Pages
 \begin_inset Foot
-status collapsed
+status open
 
 \begin_layout Plain Layout
 \begin_inset Flex URL
-status collapsed
+status open
 
 \begin_layout Plain Layout
 
@@ -205,11 +205,11 @@ http://java.sun.com/products/jsp/
  any conceivable uses.
  To that end, Lift uses a powerful templating system, a la Wicket
 \begin_inset Foot
-status collapsed
+status open
 
 \begin_layout Plain Layout
 \begin_inset Flex URL
-status collapsed
+status open
 
 \begin_layout Plain Layout
 
@@ -227,7 +227,7 @@ http://wicket.apache.org/
  Lift's templating is built on the XML processing capabilities of the Scala
  Language
 \begin_inset Foot
-status collapsed
+status open
 
 \begin_layout Plain Layout
 Not only does Scala have some extensive library support for XML, but XML
@@ -245,8 +245,8 @@ Not only does Scala have some extensive library support for XML, but XML
 \end_layout
 
 \begin_layout Standard
-Lift has another advantage that no other web framework currently shares:
- the Scala
+Lift has another advantage over many other web frameworks: it's designed
+ specifically to leverage the Scala
 \begin_inset Index
 status collapsed
 
@@ -259,15 +259,11 @@ Scala
  programming language.
  Scala is a relatively new language developed by Martin Odersky
 \begin_inset Foot
-status collapsed
+status open
 
 \begin_layout Plain Layout
-Martin wrote the original 
-\family typewriter
-javac
-\family default
- compiler for Sun, and more recently led the Pizza and GJ projects that
- eventually became Java Generics.
+Martin created the Pizza programming language, which led to the Generic
+ Java (GJ) project that was eventually incorporated into Java 1.5.
  His home page is at 
 \begin_inset Flex URL
 status collapsed
@@ -284,7 +280,7 @@ http://lamp.epfl.ch/~odersky/
 
 \end_inset
 
- and his group at EPFL Switzerland.
+ and his programming language research group at EPFL Switzerland.
  It compiles to Java bytecode and runs on the JVM, which means that you
  can leverage the vast ecosystem of Java libraries just as you would with
  any other java web framework.
@@ -293,7 +289,7 @@ http://lamp.epfl.ch/~odersky/
  Among these features are an extremely rich type system along with powerful
  type inference, native XML processing, full support for closures and functions
  as objects, and an extensive high-level library.
- The power of the type system along with its type inferencing has led people
+ The power of the type system along with its type inference has led people
  to call it 
 \begin_inset Quotes eld
 \end_inset
@@ -330,8 +326,9 @@ http://scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html
  you can get the power of the higher-level functional (or FP) languages
  (such as Haskell, Scheme, etc) while retaining the modularity and reusability
  of OO components.
- In particular, the FP concept of immutability is well represented in Scala,
- and is one of the simplest means to high throughput scalability.
+ In particular, the FP concept of immutability is encouraged by Scala, making
+ it well-suited for writing highly concurrent programs that achieve high
+ throughput scalability.
  The hybrid model also means that if you haven't touched FP before, you
  can gradually ease into it.
  In our experience, Scala allows you to do more in Lift with less lines
@@ -341,35 +338,34 @@ http://scala-blogs.org/2007/12/scala-statically-typed-dynamic-language.html
 \begin_layout Standard
 Lift strives to encompass advanced features in a very concise and straightforwar
 d manner.
- Lift's powerful support for AJAX and COMET allow you to use Web 2.0 features
+ Lift's powerful support for AJAX and Comet allow you to use Web 2.0 features
  with very little effort.
  Lift leverages Scala's Actor library to provide a message-driven framework
- for COMET updates.
- In most cases, adding COMET support to a page just involves extending a
+ for Comet updates.
+ In most cases, adding Comet support to a page just involves extending a
  trait
 \begin_inset Foot
-status collapsed
+status open
 
 \begin_layout Plain Layout
-A trait is a Scala construct that's essentially like a Java interface.
- The main difference is that traits are allowed to provide method bodies
- and may have variables.
+A trait is a Scala construct that's almost like a Java interface.
+ The main difference is that traits may implement methods and have fields
 \end_layout
 
 \end_inset
 
  to define the rendering method of your page and adding an extra function
  call to your links to dispatch the update message; Lift handles all of
- the backend and page-side coding to effect the COMET polling.
+ the backend and page-side coding to effect the Comet polling.
  AJAX support includes special handlers for doing AJAX form submission via
  JSON, and almost any link function can easily be turned into an AJAX version
  with a few keystrokes.
- In order to preform all of this client-side goodness, Lift has a class
+ In order to perform all of this client-side goodness, Lift has a class
  hierarchy for encapsulating Javascript calls via direct Javascript, jQuery
  and YUI.
  The nice part is that you, too, can utilize these support classes so that
- you can generate the code and don't have to put Javascript logic into your
- templates.
+ code can be generated for you and you don't have to put Javascript logic
+ into your templates.
 \end_layout
 
 \begin_layout Section
@@ -768,7 +764,7 @@ mvn archetype:generate -U
 \end_layout
 
 \begin_layout Standard
-Maven should output several page's worth of text.
+Maven should output several page's of text.
  It may stop and ask you to confirm the properties configuration, in which
  case you can just hit 
 \family typewriter
@@ -884,7 +880,8 @@ test/
 \family typewriter
 src/main/webapp/
 \family default
- in your project directory Here's the 
+ in your project directory.
+ Here's the 
 \family typewriter
 index.html
 \family default
@@ -939,9 +936,13 @@ In our case we have two elements in use:
 \family typewriter
 &lt;lift:surround&gt;
 \family default
- and 
+ and
 \family typewriter
-&lt;lift:helloWorld.howdy/&gt;
+
+\begin_inset Newline linebreak
+\end_inset
+
+&lt;lift:helloWorld.howdy /&gt;
 \family default
 .
  Lift assigns special meaning to elements that use the 
@@ -1040,7 +1041,7 @@ binding
 \family typewriter
 &lt;lift:helloWorld.howdy/&gt;
 \family default
- element, let's recurse and look at the default template.
+ element, let's look at the default template.
  You can find it in the 
 \family typewriter
 templates-hidden
@@ -1248,7 +1249,7 @@ reference &quot;cha:SiteMap&quot;
 \begin_layout Enumerate
 The 
 \family typewriter
-&lt;lift:msgs/&gt;
+&lt;lift:msgs /&gt;
 \family default
  element allows Lift (or your code) to display messages on a page as it's
  rendered.
@@ -1260,7 +1261,7 @@ The
 \begin_layout Standard
 Now let's look back at the 
 \family typewriter
-&lt;lift:helloWorld.howdy/&gt;
+&lt;lift:helloWorld.howdy /&gt;
 \family default
  element from the 
 \family typewriter
@@ -1490,7 +1491,17 @@ class Boot {
 
 \begin_layout Plain Layout
 
-    val entries = Menu(Loc(&quot;Home&quot;, &quot;/&quot;, &quot;Home&quot;)) :: Nil 
+    val entries = 
+\end_layout
+
+\begin_layout Plain Layout
+
+      Menu(Loc(&quot;Home&quot;, List(&quot;index&quot;), &quot;Home&quot;)) :: 
+\end_layout
+
+\begin_layout Plain Layout
+
+      Nil 
 \end_layout
 
 \begin_layout Plain Layout
@@ -1611,7 +1622,7 @@ reference &quot;cha:mapper_and_record&quot;
 \end_layout
 
 \begin_layout Itemize
-Advanced AJAX and COMET support in Lift for Web 2.0 style applications
+Advanced AJAX and Comet support in Lift for Web 2.0 style applications
 \end_layout
 
 \begin_layout Standard</diff>
      <filename>chap-welcome.lyx</filename>
    </modified>
    <modified>
      <diff>@@ -571,7 +571,7 @@ class CalendarMonthViewDemo {
 
 \begin_layout Plain Layout
 
-	bind(&quot;cal&quot;, html,
+    bind(&quot;cal&quot;, html,
 \end_layout
 
 \begin_layout Plain Layout
@@ -831,23 +831,7 @@ val itemClick = Full(
 
 \begin_layout Plain Layout
 
-  AnonFunc(
-\begin_inset Quotes eld
-\end_inset
-
-elem, param
-\begin_inset Quotes erd
-\end_inset
-
-, JsRaw(
-\begin_inset Quotes eld
-\end_inset
-
-alert(elem);
-\begin_inset Quotes erd
-\end_inset
-
-)
+  AnonFunc(&quot;elem, param&quot;, JsRaw(&quot;alert(elem);&quot;)
 \end_layout
 
 \end_inset
@@ -964,47 +948,47 @@ class CalendarWeekViewDemo {
 
 \begin_layout Plain Layout
 
-	val c = Calendar getInstance;
+  val c = Calendar.getInstance
 \end_layout
 
 \begin_layout Plain Layout
 
-	c.set(DAY_OF_MONTH, 17)
+  c.set(DAY_OF_MONTH, 17)
 \end_layout
 
 \begin_layout Plain Layout
 
-	c.set(MONTH, 4)
+  c.set(MONTH, 4)
 \end_layout
 
 \begin_layout Plain Layout
 
-    bind(&quot;cal&quot;, html,
+  bind(&quot;cal&quot;, html,
 \end_layout
 
 \begin_layout Plain Layout
 
-         &quot;widget&quot; -&gt; CalendarWeekView(c, 
+       &quot;widget&quot; -&gt; CalendarWeekView(c, 
 \end_layout
 
 \begin_layout Plain Layout
 
-                WeekViewMeta(MONDAY, Locale.getDefault()),
+         WeekViewMeta(MONDAY, Locale.getDefault()),
 \end_layout
 
 \begin_layout Plain Layout
 
-                list,
+         list,
 \end_layout
 
 \begin_layout Plain Layout
 
-                itemClick))
+         itemClick))
 \end_layout
 
 \begin_layout Plain Layout
 
-  }
+ }
 \end_layout
 
 \begin_layout Plain Layout
@@ -1105,7 +1089,7 @@ class CalendarDayViewDemo {
 
 \begin_layout Plain Layout
 
-   val c = Calendar getInstance;
+   val c = Calendar.getInstance
 \end_layout
 
 \begin_layout Plain Layout
@@ -1706,7 +1690,7 @@ Lone child
 \begin_inset Quotes erd
 \end_inset
 
-) : Nil) ::
+) :: Nil) ::
 \end_layout
 
 \begin_layout Plain Layout
@@ -1941,7 +1925,7 @@ reference &quot;fig:Sparklines-bar-chart&quot;
 id
 \family default
  attribute that will be used by the widget for its content.
- In our example weprovide a JsArray (an abstracted JavaScript array) with
+ In our example we provide a JsArray (an abstracted JavaScript array) with
  our data, as well as a JSON object containing options for the chart
 \begin_inset Foot
 status collapsed</diff>
      <filename>chap-widgets.lyx</filename>
    </modified>
  </modified>
  <removed type="array"/>
  <parents type="array">
    <parent>
      <id>3986ef09d10c7933471e36f47a311c9b62a552f2</id>
    </parent>
  </parents>
  <author>
    <name>Derek Chen-Becker</name>
    <email>github@chen-becker.org</email>
  </author>
  <url>http://github.com/tjweir/liftbook/commit/593331dae17b1065ef3abd3e3d82b61f95eaed11</url>
  <id>593331dae17b1065ef3abd3e3d82b61f95eaed11</id>
  <committed-date>2009-03-13T14:26:17-07:00</committed-date>
  <authored-date>2009-03-13T14:26:17-07:00</authored-date>
  <message>Minor corrections and revisions based on community feedback.</message>
  <tree>67b580bda93893c546cb5857bf2cb287eba2b377</tree>
  <committer>
    <name>Derek Chen-Becker</name>
    <email>github@chen-becker.org</email>
  </committer>
</commit>
