00:11:59 <morel> how can i serve a file with an other name?
00:13:04 <morel> stepcut?
00:15:10 <stepcut> morel: that is what serveFile is for
00:15:38 <morel> but it only get's one string…
00:15:55 <stepcut> http://www.happstack.com/docs/crashcourse/FileServing.html#fileservesingle
00:16:15 <stepcut> yes, you use the normal dir "foo.txt" to match on the name in the url
00:16:50 <morel> AH
00:16:57 <morel> okay.
00:17:14 <stepcut> serveFile just serves a file from the disk. It doesn't care how you went about deciding that was the file you wanted. That means you can use any method you want :)
00:18:07 <morel> alright, thank you, stepcut.
00:18:11 <morel> (btw, i am mekeor.)
00:18:35 <donri> morel ipsum mekeor sit amet
00:18:46 <morel> hehehe
00:18:56 <morel> no. i call myself "Morel Pisum" sometimes.
00:29:27 <morel> @time donri
00:29:28 <lambdabot> Local time for donri is Sat Jun  2 02:30:20
00:29:53 <morel> that explains donris stupid message…
00:30:07 <morel> (just kidding here…)
00:47:07 <donri> ACTION makes two yui releases
00:48:30 <donri> i managed to halve the size of the bundle \o/
00:48:45 <donri> the trick was to not duplicate it in the first place (make is stupid)
00:48:55 <morel> hehehe
00:50:01 <stepcut> nice!
00:50:08 <stepcut> well, not nice at first… but better now :)
00:50:13 <donri> :)
06:11:57 <plat0> Is happstack-fastcgi the right way to do fastcgi for happstack?
06:12:20 <stepcut> plat0: probably. But it is also likely out of date because it has not been integrated into the mainline
06:13:07 <stepcut> hasn't been updated since 2009 :(
06:13:43 <stepcut> it's pretty small. perhaps we should update it and make it official
06:16:16 <plat0> What do people generally use for putting a happstack server behind a master server?
06:16:25 <plat0> HTTP proxying?
06:16:30 <stepcut> plat0: yes
06:17:08 <plat0> I think I'll just do that.
06:17:21 <plat0> Actually I don't even know why fcgi would be better than that!
06:17:30 <stepcut> yup
06:17:43 <stepcut> you don't have to do anything special on the happstack side aside from picking a port to run on
06:18:10 <stepcut> also.. you might be fancy and only bind to the port on loopback, but that is not required
06:18:26 <stepcut> mostly it is just a matter of configuring apache or whatever you use
06:20:11 <plat0> I'm using Cherokee
06:20:33 <plat0> I already do some services over fcgi and some over http
06:20:52 <stepcut> sweet
06:21:06 <stepcut> ACTION is off to bed
06:21:14 <plat0> Cheers stepcut
10:26:04 <morel> @time copumpkin
10:26:05 <lambdabot> Local time for copumpkin is Saturday, June 2, 2012 6:26:58 AM Eastern Daylight Time
10:26:14 <morel> i'm sorry, wrong channel...
18:13:46 <stepcut> donri: I wonder if we could somehow use this system in to avoid having to update the DB on every page request, http://fishbowl.pastiche.org/2004/01/19/persistent_login_cookie_best_practice/
18:17:46 <donri> stepcut: isn't the problem with *non-persistent* logins?
18:17:59 <donri> where you need to check if the cookie should be expired
18:24:02 <donri> useful post for persistent logins, though
18:26:58 <stepcut> yeah.. I decided it probably isn't going to help
18:27:37 <stepcut> wait.. maybe it would
18:27:50 <stepcut> dunno, have to think about it later
18:31:50 <stepcut> the idea is that you have some other cookie with a really short lifetime.. like a minute or something. Anytime you get the sessionid cookie without the timerid cookie, you update the db and issue a new timerdb. You also need some server-side cron job that runs now and then and expires sessions
18:32:48 <stepcut> the nice thing is that the lack of a timerid is what causes the sessionid to be updated.. so if the user alters the timerid to make the expiration time longer.. they are just hurting themselves
18:43:54 <stepcut> neat, eh ?
18:46:31 <donri> sounds promising
18:46:42 <stepcut> yeah
18:49:30 <donri> stepcut: don't quite follow though :p
18:49:49 <donri> why can't you alter the expiration of the client-side timerid so that it doesn't expire client-side?
18:49:56 <donri> and thus, doesn't trigger server-side session update
18:50:14 <stepcut> you can alter the client-side timer so it doesn't run
18:50:16 <donri> oh because the update is to keep the session alive, not to expire it
18:57:57 <stepcut> right
18:58:02 <stepcut> sorry, got interrupted
18:58:27 <stepcut> we only refresh their session when the client-side timer has self-expired
18:58:54 <stepcut> so if they set it to never expire, then we will never update their server-side session, and it will then expire
18:59:43 <stepcut> we can check the expiration time on every query if we want, since that is a read-only thing
18:59:53 <stepcut> or, we can just have a reaper than runs and deletes expired sessions
19:09:07 <donri> yea, exact timings aren't important for this
19:11:36 <donri> perhaps we could default to a ratio of the timeout such that if you have a long timeout the reaper runs less frequently but if you have an online bank with 10 minutes timeout it runs more frequently
19:12:09 <donri> because even for an online bank it's not really important that the timeout is *exactly* ten minutes?
19:21:33 <stepcut> yeah
19:37:19 <donri> in other news, yui docs aren't building because hsp isnt', on hackaegf
19:38:01 <donri> actually hsp hasn't built on hackage since 0.5.2
19:38:13 <donri> and even that failed on ghc 7.0
19:38:34 <donri> guess hackage doesn't put trhsx in $PATH
19:38:53 <donri> another reason for hsx-qq :)
19:40:49 <donri> and another reason to put yui docs in happstack.com...
19:40:52 <donri> stepcut: how about trying that again? :)
20:12:09 <stepcut> sure
20:12:16 <stepcut> in a bit