[Updates to copy on front page, Added crash course to quicklinks, removed links to obsolete tutorial.happstack.com, Added link to web-routes on docs page. other copy updates. jeremy@seereason.com**20110713210052 Ignore-this: 9669a8add1b3dc55e011aadbe253526c ] hunk ./Main.hs 10 -import Happstack.Server (Conf(port), Method(GET), Response, ServerPartT, asContentType, dir, fileServe, methodM, nullConf, ok, nullDir, seeOther, serveFile, simpleHTTP, toResponse) +import Happstack.Server (Browsing(DisableBrowsing), Conf(port), Method(GET), Response, ServerPartT, asContentType, dir, serveDirectory, methodM, nullConf, ok, nullDir, seeOther, serveFile, simpleHTTP, toResponse) hunk ./Main.hs 67 - , dir "theme" $ fileServe [] themeDir + , dir "theme" $ serveDirectory DisableBrowsing [] themeDir hunk ./Main.hs 69 - , fileServe [] ircLogDir + , serveDirectory DisableBrowsing [] ircLogDir hunk ./Main.hs 75 - , dir "crashcourse" $ fileServe [] "/home/jeremy/public_html/happstack-crashcourse" - , fileServe [] docDir + , dir "crashcourse" $ serveDirectory DisableBrowsing [] "/home/jeremy/public_html/happstack-crashcourse" + , serveDirectory DisableBrowsing [] docDir hunk ./Main.hs 228 +
  • Happstack Crash Course
  • hunk ./Main.hs 281 +

    The Happstack project focuses on three areas of development:

    + +
    +
    Integration
    +
    Happstack leverages many of the existing high quality libraries available on Hackage. Through integration, Happstack has support for many templating libraries, database libraries, and more.
    +
    Innovation
    +
    acid-state (a Haskell-based, noSQL RAM cloud), ixset (a Set type which supports multiple indexes), and web-routes (type-safe url routing), all began as Happstack projects. They are available, however, for use with any framework, not just Happstack.
    +
    Documentation
    +
    There are three layers of documentation. +
      +
    1. API documentation - good haddock documentation with examples for the whole API.
    2. +
    3. API tutorials - good haddock documentation is essential, but not sufficient. In order to learn a new API, you need a guide that shows you where to get started, explains the big picture, and shows you how to handle specific tasks. The Happstack Crashcourse is a growing tutorial which shows you how to develop web applications using Happstack. It includes many small, self-contained and thoroughly explained examples which you can download and run.
    4. +
    5. High-level design - Using great libraries does not guarantee success anymore than using great ingredients guarantees a delicious cake. There are many important design decisions that must be made along the way. Each website is grows differently and has different requirements. So, the next level of documentation will discuss various design ideologies, practices, and how to implement them using Happstack. This will include topics like content and presentation layer separation, REST, MVC-style design, data partitioning, staging and deployment, etc.
    6. +
    +
    +
    +

    Some Happstack Technologies

    hunk ./Main.hs 299 -

    Happstack's RAM cloud database architecture provides you the speed and predictability of RAM based queries combined with the durability, replication, and ACID properties of traditional databases. This architecture provides you with fast, predictable query times with out the uncertainly of cache misses. It simplifies your development because it is built around Haskell datatypes and functions. This means you do not need to learn a specialized query language. You also do not have to worry about database denormalization, data marshaling, SQL-injection attacks, etc. Nor do you have to worry about installing, tuning, configuring, and upgrading a caching layer such as memcached or database servers.

    +

    Happstack favors the use of acid-state, a RAM cloud database architecture. acid-state provides you the speed and predictability of RAM based queries combined with the durability, replication, and ACID properties of traditional databases. This architecture provides you with fast, predictable query times with out the uncertainly of cache misses. It simplifies your development because it is built around Haskell datatypes and functions. This means you do not need to learn a specialized query language. You also do not have to worry about database denormalization, data marshaling, SQL-injection attacks, etc. Nor do you have to worry about installing, tuning, configuring, and upgrading a caching layer such as memcached or database servers.

    hunk ./Main.hs 310 -

    Happstack does not force you to use any particular templating or HTML generation solution. Each organization and project has different needs and a one size fits all approach can not satisfy everyone. Instead Happstack provides integration with a variety of templating solutions to meet different needs. This includies HSP, HStringTemplate, hamlet, BlazeHTML and more! It is easy to add additional 3rd party or custom options as well. A discussion of options can be found here.

    +

    Happstack does not force you to use any particular templating or HTML generation solution. Each organization and project has different needs and a one size fits all approach can not satisfy everyone. Instead Happstack provides integration with a variety of templating solutions to meet different needs. This includies HSP, HStringTemplate, hamlet, heist, BlazeHTML and more! It is easy to add additional 3rd party or custom options as well. A discussion of options can be found here.

    hunk ./Main.hs 313 -

    Happstack includes a number of optional features which can increase the type safety of your web application. This means greater assurance that your site is free from broken URLs, SQL and javascript injection attacks, missing form fields, etc. This includes technology such as web-routes for type-safe URL routing and formlets for type-safe form processing.

    +

    Happstack includes a number of optional features which can increase the type safety of your web application. This means greater assurance that your site is free from broken URLs, SQL and javascript injection attacks, missing form fields, etc. This includes technology such as web-routes for type-safe URL routing and digestive-functors for type-safe form processing.

    hunk ./Main.hs 407 -

    The Happstack Crash Course is the new friendly introduction to Happstack. Unfortunately, it is so new that it isn't done yet. But it is still a great place to get started. It is updated frequency so check back often.

    +

    The Happstack Crash Course is the most complete resource for learning Happstack. New sections are added regularly, so check back often.

    + {- hunk ./Main.hs 411 +-} hunk ./Main.hs 415 - Happstack type-safe routing and URLs using web-routes and the Regular library +

    Crash course section of web-routes

    +

    Happstack type-safe routing and URLs using web-routes and the Regular library

    hunk ./Main.hs 420 -

    You can browse the source code for the guestbook demohere.

    +

    You can browse the source code for the guestbook demo here.

    hunk ./debian/changelog 1 +haskell-happstackdotcom (0.0.47) unstable; urgency=low + + * Updates to copy on front page + * Added crash course to quicklinks + * removed links to obsolete tutorial.happstack.com + * Added link to web-routes on docs page + + -- Jeremy Shaw Wed, 13 Jul 2011 15:24:07 -0500 + hunk ./debian/control 23 - haskell-happstack-server-doc, - haskell-happstack-state-doc, + libghc-happstack-server-doc, + libghc-happstack-state-doc, hunk ./happstack.com.cabal 2 -Version: 0.0.46 +Version: 0.0.47 hunk ./theme/theme.css 197 + +dl +{ + line-height: 1.5em; +} +dt +{ + font-weight: bold; +} + +dd +{ + margin-bottom: 1em; +}