00:45:03 <steven_t> the front page for happstack suggests its innovative, but doesnt describe how so
00:45:07 <steven_t> any of you guys have ideas on this?
01:09:42 <stepcut> :)
01:09:55 <steven_t> !
07:12:24 <JuanDaugherty> SFAIK, other than it's the haskell app server base, it's not. That alone is supposed to carry that property.
08:22:23 <Entroacceptor> it's innovative because it has the Haskell 'Invented Here!'-syndrome
08:25:38 <JuanDaugherty> wrt to the person concept, it doesn't have an upper bound so species at higher levels are included too
09:30:40 <HugoDaniel> hello
10:14:42 <HugoDaniel> i want to quickly generate html formularies
10:14:48 <HugoDaniel> is there any haskell tool for that ?
10:41:32 <Entroacceptor> I think there's formlets
10:41:46 <Entroacceptor> but I'm not sure, haven't used it and no idea if it works with happstack :)
10:43:29 <Entroacceptor> and I have no clue what applicative functors are
12:33:05 <HugoDaniel> Entroacceptor: applicative is teh best :)
12:33:23 <Entroacceptor> but what is it?
12:33:31 <HugoDaniel> http://en.wikibooks.org/wiki/Haskell/Applicative_Functors
12:33:55 <HugoDaniel> read the "Using applicative functors"
12:33:57 <HugoDaniel> section
13:03:58 <HugoDaniel> Entroacceptor: these formlets seem like a very nice concept :D
13:04:10 <HugoDaniel> im reading the article on idiom view of formlets
13:04:19 <HugoDaniel> idioms also seem very nice indeed
13:09:31 <HugoDaniel> hmm idioms are just applicative functions as it seems to me
13:09:46 <HugoDaniel> i dont know why they call it "idioms" in the paper
13:10:04 <HugoDaniel> maybe there is some wicked difference elsewhere
13:34:07 <stepcut> they just hadn't settled on a name yet
13:38:46 <HugoDaniel> oh
14:03:23 <HugoDaniel> i like idioms better than "applicative functor"
14:03:28 <HugoDaniel> "functor" is ugly
14:03:58 <stepcut> but they are functors that capture the concept of 'application'
14:07:04 <HugoDaniel> yes
14:07:10 <HugoDaniel> :) i just dont like the name "functor"
14:07:24 <HugoDaniel> it sounds like... i dont know, power rangers stuff
14:07:29 <HugoDaniel> zorbatron
14:07:31 <HugoDaniel> functor
14:07:34 <HugoDaniel> whatever :)
14:14:23 <Entroacceptor> yeah, haskell seems to be in love with names that sound dangerous
14:17:06 <HugoDaniel> i like formlets
14:17:25 <mightybyte> Yeah, they make life easier.
14:17:28 <Entroacceptor> formlets is okay
14:17:32 <Entroacceptor> that sounds cute
14:18:25 <HugoDaniel> yes, indeed
14:18:33 <HugoDaniel> im starting to become in love with them
14:18:37 <HugoDaniel> and it started with the name
14:23:19 <stepcut> HugoDaniel: blame it on the category theorists
14:26:20 <Entroacceptor> how automatic is the form creation?
14:33:26 <stepcut> Entroacceptor: if you had a type like, data Foo = Foo String String, then you would make a formlet like, Foo <$> input Nothing <*> input Nothing
14:33:51 <stepcut> that would generate a form with two text input fields, and the code to parse the POST data and extract the values
14:34:20 <stepcut> if you wanted to validate that the second argument meet some condition you could do:
14:35:18 <stepcut> Foo <$> input Nothing <*> (input Nothing `check` (\str -> if predicate str then (Success str) else Failure [str ++ " did not satisfy some predicate."]
14:35:19 <stepcut> )
14:35:22 <stepcut> )
14:35:35 <Entroacceptor> ok...
14:35:41 <Entroacceptor> mhmm
14:36:53 <stepcut> there is also a generic formlets library, which uses the 'regular' library to create forms automatically from types
14:36:56 <stepcut> but I have not used it
14:38:18 <stepcut> the useful thing about formlets is that the return Haskell datatypes, and can be composed freely
14:39:16 <stepcut> so, you can create a form for a big haskell datatype by composing together formlets for different types of the type
14:40:16 <Entroacceptor> sounds good
14:41:03 <Entroacceptor> I guess
14:41:11 <stepcut> also, you only work with the values returned by the formlet, not the low-level form data names, etc. This means you can easily swap one formlet for another -- as long as they return the same type
14:42:22 <stepcut> for example, if you had a date selector formlet -- your first implementation might be really simple -- just 3 drop down boxes. But you could later replace it with a fancy javascript powered calendar widget
14:43:49 <stepcut> even though that will result in very different html and form field names, you won't have to change any of the server code that is parsing the form data, (because the parsing information is bundled into the formlet itself)
14:56:16 <mightybyte> And of course you won't have to deal with coming up with unique field names to put in the HTML.
14:57:06 <mightybyte> stepcut: Have you switched to using formlets from hackage?
14:57:47 <stepcut> mightybyte: yeah, 0.7.1
14:58:58 <stepcut> now I am working on some wacky code that combines client-side javascript widgets and formlets
15:00:22 <mightybyte> Cool.  If you have any nice formlet widgets that are generally useful, send them my way and I'll see about getting them in if appropriate.
15:02:38 <JuanDaugherty> what is a formulary (outside of the normal connotation in drug regimens and the like)?
15:03:06 <JuanDaugherty> or was that a mistake?
15:03:14 <aavogt> formletron
15:03:20 <JuanDaugherty> k
15:25:06 <stepcut> mightybyte: first I have to make the widgets code generally useful
15:25:42 <mightybyte> ok
15:46:26 <siracusa> Who is responsible for the content of the platform hompage?
15:48:20 <stepcut> siracusa: do you mean happstack.com ?
15:48:35 <siracusa> No, the haskell platform.
15:49:23 <siracusa> Wasn't the layout discussed here a week ago or so?
15:49:24 <stepcut> siracusa: the community! ;)
15:49:41 <stepcut> siracusa: I think dons knows the answer..
15:50:13 <stepcut> here, as in #happs ?
15:50:44 <siracusa> I thought so
15:50:56 <stepcut> not that I recall..
15:51:17 <siracusa> Or maybe it was #haskell-web, but there are to few people at the moment :-P
15:51:31 <siracusa> too few
15:51:58 <stepcut> do you wish to change something about it ?
15:52:49 <siracusa> I would like to see a list of all the version numbers of the packages included in the platform
15:56:04 <stepcut> yes, that was discussed on a mailing list
15:56:21 <stepcut> as well as making the links to hackage actually point to the specific version of the package used in the platform instead of the latest version
15:56:31 <stepcut> not sure why it has not happened yet
20:44:59 <aep> hi. manual suggests running searchpath. that whines Ambiguous module name `Control.Monad.Identity'. and then just continues doing nothing
20:45:32 <stepcut> which manual?
20:45:52 <aep> http://happs.org/ "Getting started"
20:46:04 <stepcut> I would look at happstack.com instead
20:46:11 <aep> ACTION facepalms
20:46:59 <aep> err, now i'm confused
20:47:07 <aep> none of these sites look like what i remember
20:47:18 <stepcut> oh ?
20:47:23 <aep> ah the tutorial does. great
20:47:31 <stepcut> k
20:47:58 <aep> whats happs.org then?
20:48:58 <stepcut> the origins of happstack
20:49:11 <aep> ah
20:52:56 <aep> now i get a conflict on QuickCheck D:
20:53:05 <aep> Crypto-4.2.1. It requires QuickCheck >=2
20:53:13 <aep> QuickCheck-2.1 was excluded because happstack-util-0.4.1 requires QuickCheck
20:53:15 <aep> <2
21:01:34 <Entroacceptor> mhm
21:01:45 <Entroacceptor> iirc that was fixable, somehow
21:01:53 <Entroacceptor> but can't remember how
21:02:36 <aep> i installed a lowe quickcheck version manually and then it worked
21:05:47 <aep> until the next conflict >_<
21:06:17 <stepcut> regarding QuickCheck, that is one of the things that will be 'fixed' in 0.5, which I plan to release this week
21:06:23 <stepcut> what conflict now?
21:06:50 <aep> setup: happy version >=1.17 is required but it could not be found.
21:07:00 <aep> that was haskell-src-exts
21:07:22 <aep> just a broken dept
21:07:30 <stepcut> ah
21:16:43 <aep> containers- fails to build :(
21:19:59 <aep>     Could not find module `Data.Data':
21:20:00 <aep>       It is a member of the hidden package `base'.
21:20:08 <aep> hmm
21:20:33 <aep> cabal install base yields:
21:20:34 <aep> cabal: Distribution/Client/Dependency/TopDown.hs:169:37-73: Non-exhaustive patterns in lambda
21:20:41 <McManiaC> lol
21:57:14 <stepcut> what version of GHC are you using?
22:12:04 <aep> stepcut: 6.12.1
22:12:10 <stepcut> hmm
22:12:31 <stepcut> well, base should already be installed, not sure what containers is doing funky
22:12:52 <aep> got help in #haskell already. apparantly happstacks use of  containers  < couses trouble
22:13:02 <aep> <= works for me
22:13:49 <stepcut> ah
22:14:44 <stepcut> which .cabal file has that ?
22:15:27 <aep> happs-tutorial.cabal
22:15:28 <stepcut> I don't see it in the darcs files, so maybe that has already been fixed
22:15:30 <stepcut> oh
22:15:43 <stepcut> I don't have control over happs-tutorial.cabal :)
22:19:08 <Entroacceptor> why not? Get it! :)
22:19:22 <Entroacceptor> and can someone transfer some haskell knowledge into my brain?
22:43:49 <aavogt> what kind?