[racket] 2 minor suggestion to the Tutorial "Continue: Web Applications in Racket"

From: Jay McCarthy (jay.mccarthy at gmail.com)
Date: Thu May 3 10:51:19 EDT 2012

I made the first change, but will leave the second to Ryan (or you?).

Jay

On Sat, Apr 14, 2012 at 10:29 PM, J G Cho <gcho at fundingmatters.com> wrote:
> 1. Currently the following Formlet is used:
>
> (define new-post-formlet
>  (formlet
>   (#%# ,{input-string . => . title}
>        ,{input-string . => . body})
>   (values title body)))
>
> Although it is pretty and elegant, some people might benefit seeing
> the more verbose version:
>
> (define new-post-formlet
>  (formlet
>   (#%# (fieldset
>         (label ((for "name")) "Title")
>         ,((to-string (required (text-input #:attributes '((id
> "name")(class "form-text"))))) . => . title))
>        (fieldset
>         (label ((for "body")) "Body")
>         ,((to-string (required (text-input #:attributes '((id
> "body")(class "form-text"))))) . => . body)))
>   (values title body)))
>
> Possible reason is that if one (who is not very good at CSS) wants to
> use/borrow/copy an existing CSS, then it's easier to add class
> attributes to tags than modifying CSS. As a Formlet newbie, it took a
> bit of head scratching to figure out how to do this.
>
>
>
> 2. model should show how to use Pooled/Virtual Connection (as detailed
> in collects/db).
>
> in model-4.rkt (maybe):
>
> (define (initialize-blog! db)
>  (define the-blog (blog db))
>  (unless (table-exists? db "posts")
>
> instead of
>
> (define (initialize-blog! home)
>  (define db (sqlite3-connect #:database home #:mode 'create))
>  (define the-blog (blog db))
>
> plus (virtual-statement "INSERT ... (?,?)") in places of various
> prepared statements.
>
> in servlet code:
>
> (require web-server/formlets
>           db
>           "model-4.rkt")
>
> (define db
>  (virtual-connection
>   (connection-pool
>    (lambda ()
>      (sqlite3-connect
>       #:database (build-path (current-directory) "the-blog-data.sqlite")
>       #:mode 'create)))))
>
> (define (start request)
>  (render-blog-page
>   (initialize-blog! db)
>   request))
>
> instead of:
>
> (require web-server/formlets
>         "model-3.rkt")
>
> (define (start request)
>  (render-blog-page
>   (initialize-blog!
>    (build-path (current-directory)
>                "the-blog-data.sqlite"))
>   request))
>
> as hinted in db documentation.
>
> I really like the db module and as a newbie, I know I would've
> appreciated seeing it in the tutorial.
>
>
> But then again, the tutorial is pretty long already...so maybe not.
>
> jGc
> ____________________
>  Racket Users list:
>  http://lists.racket-lang.org/users



-- 
Jay McCarthy <jay at cs.byu.edu>
Assistant Professor / Brigham Young University
http://faculty.cs.byu.edu/~jay

"The glory of God is Intelligence" - D&C 93


Posted on the users mailing list.