11:22:25 <HugoDaniel> hellow
12:04:28 <dixie> hmm, does the hackage version happstack support blaze-html?
12:05:15 <dixie> I mean without need to write the instance for ToResponse
12:05:20 <dixie> like it is on http://happstack.com/docs/crashcourse/Templates.html
12:38:06 <HugoDaniel> dixie only the darcs version
12:38:17 <HugoDaniel> the crashcourse refers to the darcs version of happstack
12:38:59 <HugoDaniel> stepcut is going to upload the version 6 to hackage soon
13:54:23 <HugoDaniel> Registering happstack-ixset-0.5.1...
13:54:23 <HugoDaniel> Resolving dependencies...
13:54:23 <HugoDaniel> cabal: dependencies conflict: happstack-util-0.5.1 requires network ==2.2.1.10
13:54:23 <HugoDaniel> however
13:54:23 <HugoDaniel> network-2.2.1.10 was excluded because happstack-server-0.5.1 requires network
13:54:24 <HugoDaniel> >=2.2.3
13:54:29 <HugoDaniel> ... :(
13:55:08 <dixie> HugoDaniel: Thanks. I have found the instance for existing hackage version. It is not a problem for me anymore ;)
13:55:42 <HugoDaniel> happstack-server]$ cabal install
13:55:42 <HugoDaniel> Resolving dependencies...
13:55:43 <HugoDaniel> cabal: Codec.Compression.Zlib: premature end of compressed stream
15:50:00 <stepkut> HugoDaniel: what versions of network do you have installed ?
16:01:41 <HugoDaniel> network-2.2.1.10
16:01:59 <stepkut> hmm
16:02:36 <stepkut> the happstack-server.cabal file should install 2.2.1.10 if 2.2.3 is not available
16:02:43 <stepkut> do you also have network-bytestring installed ?
16:02:53 <HugoDaniel>     network-bytestring-0.1.3.2
16:02:53 <HugoDaniel>     network-enumerator-0.1.1
16:02:56 <HugoDaniel> yes
16:03:32 <stepkut> what happens if you add, --constraint 'network < 2.2.3' when trying to install happstack-server?
16:04:21 <HugoDaniel> it compiles and goes
16:05:49 <stepkut> hmm
16:06:06 <stepkut> i'm not sure what to do about that
16:06:35 <stepkut> the .cabal file is correct, I think, but the cabal dependency solver is not smart enough
16:06:42 <HugoDaniel> hmm
16:06:44 <HugoDaniel>     happstack-0.5.1
16:06:44 <HugoDaniel>     happstack-data-0.5.0.3
16:06:44 <HugoDaniel>     happstack-ixset-0.5.0.3
16:06:44 <HugoDaniel>     happstack-server-0.5.0.4
16:06:45 <HugoDaniel>     happstack-state-0.5.0.4
16:06:47 <HugoDaniel>     happstack-util-0.5.0.3
16:06:49 <HugoDaniel> i have installed from darcs
16:06:58 <HugoDaniel> are these version numbers correct ?
16:07:19 <stepkut> no
16:07:23 <HugoDaniel> oh
16:07:25 <HugoDaniel> :/
16:07:26 <stepkut> the 0.5.0.* numbers are from hackage
16:07:44 <HugoDaniel> ok
16:08:01 <HugoDaniel> im going to run the .sh script to build them
16:08:04 <stepkut> k
16:08:16 <HugoDaniel> i was building by going to the happstack dir and runing cabal install from there
16:08:39 <stepkut> yeah.. the happstack.cabal file should have tighter dependencies
16:08:54 <stepkut> right now it says, happstack-data   >= 0.5 && < 0.6, but it should probably be,                        happstack-data   >= 0.5.1 && < 0.6,
16:09:04 <HugoDaniel> cabal: dependencies conflict: happstack-util-0.5.1 requires network ==2.2.1.10
16:09:04 <HugoDaniel> however
16:09:04 <HugoDaniel> network-2.2.1.10 was excluded because happstack-server-0.5.1 requires network
16:09:04 <HugoDaniel> >=2.2.3
16:09:14 <HugoDaniel> the same as before
16:09:32 <HugoDaniel> ah
16:09:36 <HugoDaniel> i patched the cabal file
16:09:40 <HugoDaniel> maybe i shouldn't have done it :P
16:09:41 <HugoDaniel> eheh
16:09:42 <HugoDaniel> sorry there
16:09:47 <stepkut> in what way did you patch it ?
16:09:56 <HugoDaniel> i added the '=' to 2.2.3
16:09:58 <HugoDaniel> to force it
16:10:53 <stepkut> but you want it to take the second branch of,   if flag(network_2_2_3), anyway?
16:11:08 <stepkut> or would you rather have the newer network?
16:11:16 <HugoDaniel> hmm
16:11:26 <HugoDaniel> whatever works for me :/
16:11:31 <HugoDaniel> i dont know the diff between them
16:11:41 <HugoDaniel> maybe newer means its also better
16:11:42 <stepkut> the newer network library has network-bytestring merged in
16:11:58 <stepkut> could be
16:12:03 <stepkut> tibbe has been hacking on it
16:12:12 <HugoDaniel> oh, nice
16:12:19 <stepkut> you could do cabal update ; cabal install network
16:12:36 <stepkut> then, ./bin/clean-all.sh  && ./bin/build-install-all.sh
16:12:39 <stepkut> and then it should work
16:12:57 <HugoDaniel> cabal: Codec.Compression.Zlib: premature end of compressed stream
16:13:04 <HugoDaniel> i get that when trying to install network
16:13:22 <stepkut> odd
16:13:28 <stepkut> what if you run, cabal unpack network
16:13:43 <HugoDaniel> $ cabal unpack network
16:13:43 <HugoDaniel> Unpacking to network-2.3.0.1/
16:13:43 <HugoDaniel> cabal: Codec.Compression.Zlib: premature end of compressed stream
16:13:52 <HugoDaniel> wicked
16:14:14 <stepkut> I would cd into ~/.cabal/packages/hackage.haskell.org/network
16:14:32 <stepkut> and remove the network 2.3.* directories.. and see if that helps
16:14:39 <stepkut> sounds like the download got corrupted
16:14:50 <HugoDaniel> ah
16:14:51 <HugoDaniel> it does
16:14:56 <HugoDaniel> now i know what happened
16:15:09 <HugoDaniel> the download failed this morning
16:15:19 <HugoDaniel> and zlib was complaining
16:15:38 <HugoDaniel> i didn't notice the download failing because im always working with loads of xterms on top :/
16:16:20 <HugoDaniel> ok
16:16:22 <HugoDaniel> rebuilding
16:16:23 <HugoDaniel> :D
16:17:05 <HugoDaniel> btw, did checkout the warp server ?
16:17:13 <HugoDaniel> *s/did/did you
16:17:51 <stepkut> not yet
16:17:57 <HugoDaniel> happstack-hsp-0.5.1 failed during the building phase.
16:18:04 <stepkut> but it is a compelling reason to finally migrate to WAI
16:18:18 <HugoDaniel> yeh
16:18:35 <HugoDaniel> i like what the wai tries to accomplish
16:18:42 <stepkut> yeah
16:19:07 <stepkut> I am not sure if we should switch now, or let warp and snap battle it out for a while
16:19:15 <HugoDaniel> :D
16:19:26 <stepkut> snoyman says we should switch now :p
16:19:37 <HugoDaniel> ahah, i wonder why ? :)
16:20:10 <HugoDaniel> as a pseudo-developer i dont really have a strong opinion on them
16:20:33 <stepkut> hopefully it has settled down a bit.. the WAI stuff was pretty volatile at the beginnig
16:20:39 <HugoDaniel> im sticking with happstack
16:20:46 <stepkut> me too :)
16:20:55 <HugoDaniel> yeah, the 0.3 version seems cool, they added network
16:21:00 <HugoDaniel> and blaze-builder
16:21:15 <stepkut> but replacing the low-level HTTP backend with something else has been on the TODO list for a while
16:21:32 <stepkut> it's actually not that disruptive of a change
16:21:44 <HugoDaniel> yeah, everything is nicely abstracted
16:21:50 <stepkut> yeah
16:22:43 <stepkut> you will mostly only notice the change if you manipulate the Request/Response types directly. But typically you do things using a high-level API that abstracts that away
16:23:02 <HugoDaniel> ripping the nginx http code, binding it in happstack and producing some hyped benchmarks would be a cool thing to do just to troll a bit :)
16:23:13 <HugoDaniel> yeah
16:24:00 <stepkut> that sort of thing would be easier to do with WAI I think, since it really makes a clean break between the high and low-level HTTP stuff
16:25:13 <stepkut> so is your build working now ?
16:25:58 <HugoDaniel> yeah
16:25:59 <HugoDaniel> :)
16:32:48 <stepkut> cool
16:33:18 <stepkut> I am going to think about this auth stuff some more then
16:33:27 <stepkut> it's annoyingly tricky
16:34:00 <HugoDaniel> :)
16:34:45 <stepkut> mostly because it is easy to accidently create two versions of yourself :)
16:36:26 <stepkut> the library let's you log in via openid. If you log in using an openid account for the first time, it automatically creates a new account on the system for you. So, that makes things easy.
16:37:22 <stepkut> You can also add additional openid accounts that you want to log in with. For example, you might want to log in using your google account or your yahoo account (in case you lose access to one or the other).
16:38:41 <stepkut> But, there is a problem there.. if you have logged in once via your google openid account, and once via your yahoo openid account. then you might have two local accounts. If you try to then add the yahoo openid account as a second auth method to the first account, then it will be unclear who to log you in as when you connect via yahoo
16:42:41 <HugoDaniel> thats amazing :)
16:43:39 <HugoDaniel> yeah, i noticed a similar problem in haskellers
16:43:44 <stepkut> getting it to work will be amazing
16:43:50 <HugoDaniel> it should be possible to "link" accounts
16:44:09 <HugoDaniel> login accounts
16:44:24 <stepkut> yeah, I was going to see what haskellers.com did, but when I tried to log in via my google openid it created a new account instead of logging in using my existing account :(
16:44:48 <stepkut> well, I want to have linked account as well..
16:45:21 <stepkut> the idea is that you should be able to: (1) have multiple login methods (aka, multiple openid accounts) (2) have multiple profiles you can pick from once you have authenticated
16:47:10 <stepkut> so, one way to do that is to have a AuthId that represents a specific person. You can then associate multiple authentication methods and profiles with that single AuthId.
16:47:29 <stepkut> but, if the user accidently creates multiple AuthIds for themselves, things get tricky
16:48:14 <stepkut> To merge the AuthIds, you need to update all the places that use the AuthId to use one AuthId or the other.. but the auth library itself does not know what all those locations are..
16:49:43 <stepkut> or maybe the AuthId should never be exposed outside the auth library
16:50:47 <stepkut> but that causes other issues
16:52:42 <Entroacceptor> is there a specific reason why you bother with that?
16:53:01 <stepkut> Entroacceptor: that == ??
16:53:18 <Entroacceptor> most systems just have one account per login
16:53:32 <stepkut> Entroacceptor: yeah, that sucks
16:54:31 <Entroacceptor> ok :)
16:55:24 <stepkut> Entroacceptor: for example, youtube has one profile per login.. which is really annoying. I don't really want my band and happstack to share the same youtube profile. But it's annoying to switch profiles because it is linked to my google profile..
16:55:43 <stepkut> Entroacceptor: blogger is much nicer.. I have easily create multiple distinct blogs
16:55:55 <Entroacceptor> ah
16:56:03 <Entroacceptor> mhmm
16:56:34 <Entroacceptor> ok, I see the problems
16:56:40 <stepkut> so, I want to make sure that in any web apps I write, it is easy to switch personalities
16:56:54 <stepkut> also, some personalities might be managed by multiple people
16:57:18 <stepkut> for example, if there was a 'happstack' channel on youtube -- it would be nice if multiple people could add new videos to it
16:57:31 <Entroacceptor> yes, but that doesn't have to be done on the account level
16:59:59 <stepkut> Entroacceptor: right.. ideally the auth stuff should just give you an AuthId that says who is logged in (where 'who' is a specific real person). Then the users of the auth library can build what they want on top of that.
17:01:14 <Entroacceptor> yes
17:01:28 <stepkut> and supporting multiple authentication methods that map to a single AuthId is fine too
17:01:33 <Entroacceptor> indeed
17:01:51 <stepkut> except when you want to add an authentication method, but that method already maps to a different AuthId
17:01:54 <Entroacceptor> mmh, maybe rather add something like setuid
17:02:30 <Entroacceptor> ah, well, I gtg
17:02:33 <Entroacceptor> bbl
17:03:43 <stepkut> yeah, that gets extra confusing I think.. then you have to select between with AuthId you want to log in as, and then you have to pick what personality you want to use..
20:02:11 <HugoDaniel> going home
21:09:04 <dixie> hmm, when I use in FromData the "look" is it method agnostic? e.g. works for both POST and GET ?
22:40:17 <stepkut> dixie: POST and GET is not really a good way to think about it
22:40:27 <stepkut> dixie: the data can come from either the request body or from the query string
22:40:56 <stepkut> dixie: in the darcs version of happstack, you can limit the search to one or the other by using the queryString or body filters
22:41:17 <stepkut> http://happstack.com/docs/crashcourse/RqData.html#rqdatalimiting
22:43:50 <stepkut> also, you may want to skip using FromData and just use look directly
22:44:03 <stepkut> I don't find that using FromData adds any value.. though I could be wrong
23:38:49 <dixie> stepkut: it seems I have to move on darcs version of happstack. The tutorial is very nice.
23:43:59 <stepcut> dixie: yeah, the darcs version is pretty much ready for release.. I am just trying to figure out how to setup an autobuilder for it so that I can do a daily build against hackage to make sure nothing has broken