14:39:13 <noser> hey guys. :) (how) can i make happs never write "Server: Happstack/7.0.4" in the http-header?
17:03:12 <noser> is it allowed to re-ask your question if you think people who probably can answer your question have joined? :D
17:15:30 <donri> noser: go for it
17:16:22 <donri> looking at the logs, well: you can setHeaderM "Server", but I don't know if happstack will override it later - try it!
17:16:46 <stepcut> i hope it wouldn't
17:16:48 <stepcut> ACTION looks
17:17:14 <stepcut> i wonder if we should patch happstack to not set that header ever
17:17:43 <donri> i think it should be set as a default that can be overridden or removed
17:17:44 <mm_freak_> yes
17:18:32 <mm_freak_> i never liked existing httpds for giving an attacker everything they need…  happstack probably shouldn't make the same mistake
17:18:52 <donri> that's true, on the other hand that's arguing for security through obscurity ;)
17:19:01 <donri> on the third hand all security is obscurity
17:19:33 <stepcut> I figure attackers are going to check for the exploits using some automated tool that doesn't just check if the header exists.. and I am not sure that those headers turn up in search results .. so it wouldn't make your site easier to find
17:19:33 <mm_freak_> well, ask yourself this:  what purpose does the header server other than to reveal exact information about the running software to a potential attacker?
17:19:54 <stepcut> mm_freak_: not much.. which is why I am not against removing it :)
17:20:02 <donri> mm_freak_: how's that categorical web framework design coming along? any draft to see what you're on to?
17:20:23 <mm_freak_> donri: currently i have to work on an elliptic curve library for a project i'm doing
17:20:30 <donri> well i think it's fun to look what server a site is running - especially if it's happstack!
17:20:33 <mm_freak_> but it's still on the map =)
17:20:37 <stepcut> though.. it did exposed the fact that some small section of xkcd.com uses happstack .. so that is good ;)
17:20:39 <donri> okies
17:20:42 <stepcut> donri: exactly
17:21:15 <mm_freak_> donri: i'd prefer to put a "Powered by Happstack" with a link to the happstack homepage into the markup
17:21:22 <mm_freak_> the headers should serve technical purposes
17:21:24 <donri> there's a ton of other ways to detect server software though
17:22:01 <mm_freak_> donri: other than the header currently there is no useful way to detect happstack (or any haskell web framework for that matter)
17:22:22 <donri> mm_freak_: well, the standard 404 page is an easy way
17:22:52 <mm_freak_> i don't think that one is served by any real web site =)
17:23:11 <donri> http://new-hackage.haskell.org/are-you-sure
17:23:33 <mm_freak_> well, in any case it's easy to override
17:23:42 <donri> so would a default Server be :)
17:23:53 <donri> but i don't feel strongly about it
17:24:47 <donri> unless it's mandated by spec or something
17:25:21 <stepcut> looks like the happstack header is hard coded in, http://hub.darcs.net/stepcut/happstack/browse/happstack-server/src/Happstack/Server/Internal/Handler.hs#205
17:25:25 <stepcut> someone should submit a patch
17:25:33 <mm_freak_> you know, what i love about haskell projects is that they control side effects carefully, which is the main motivation to write that categorical framework design after all…  implicit features are one of the worst nightmares of the programming world, and i consider them a kind of side effect
17:25:44 <mm_freak_> in fact i'd even say that implicit headers are unsound in a writer model
17:25:57 <mm_freak_> if return () includes the header, then it's not a proper monad
17:26:14 <stepcut> I have no problems with a patch that removes that header
17:26:24 <mm_freak_> of course happstack uses a state model, so it's categorically sound, but i like to look at these things in other models as well
17:29:17 <donri> yea, that's one thing i don't like about the snap monad; response building is a side effect, so you can easily e.g. send an empty response
17:29:17 <donri> it's not hard to do that in happstack either, but at least you need to be more explicit about it
17:29:17 <stepcut> speaking of patches.. i've often been confused by the fact that people who are so far often the beaten path that they are willing to consider a web framework writing in Haskell running on a open source operating system are so unwilling to try an unfamiliar revision control system.. but then I realized that they have been so abused by git that they think all revisions control systems must be horribly complex and hard to use.. so no wonder they don't want to le
17:29:17 <stepcut>  another one
17:29:17 <donri> haha
17:29:22 <mm_freak_> stepcut: you'll be happy to know that i'm a darcs user for years =)
17:29:44 <mm_freak_> the problem is:  people hate git, but they love github
17:29:48 <stepcut> me too, alas I think we have to move happstack to github
17:30:04 <mm_freak_> if you want to get more developers in, then yes
17:30:20 <donri> i think it's more about being forced to use something vs. making a choice yourself. you choose the editor you use, the OS you develop on, the language and framework you use... but you can't control the VCS upstream uses
17:30:38 <donri> i think you feel the same when you're forced to use not-darcs ;)
17:30:42 <stepcut> darcs+hub is like a beautful house in the country side, and git+github is like a crappy apartment in new york city.. if you want to have a big party.. NYC is going to be a better place for it
17:31:26 <stepcut> but.. it means you have to sell your beautiful house in the country-side that you love, and move to a tiny, noisy, cockroach filled apartment in the city
17:31:40 <mm_freak_> hehe, nice metaphor
17:31:53 <stepcut> … or you have to build up the community around your country house.. which takes an immense amount of effort
17:32:11 <stepcut> and, unfortunately, unlike CVS, git is 'good enough', so people are not very inspired to switch
17:32:21 <donri> or you invent teleportation and solve the problem for everyone! (darcs bridge)
17:33:15 <stepcut> but, for 99% of projects.. darcs is probably a much better RCS than git. Perhaps git is more powerful.. but most people don't need that power.. and will likely just screw up their repository instead
17:33:30 <donri> stepcut: btw have you considered moving to a more open commit model? ie. hand out commit rights to a lot of people. works for edwardk :p
17:33:35 <stepcut> but.. that github momentum is difficult to overcome
17:34:01 <stepcut> donri: I am not opposed to the idea
17:34:11 <stepcut> would be more better if scoutess was running :)
17:34:15 <donri> hehe
17:34:22 <donri> everything would be better with scoutess!
17:34:29 <donri> yay pipe dreams
17:34:52 <stepcut> so, my non-programmer friend is over, and I was just on the hub.darcs.net page, and she said, "ooo, what's that site, it looks nice."
17:34:58 <donri> actually git is kinda nice if you ignore the UI warts
17:35:07 <stepcut> and then I showed here the github page, and asked which one she would pick
17:35:08 <donri> the model is a bit like functional data structures
17:35:22 <stepcut> hub.darcs.net was the winner
17:35:24 <donri> commits a bit like acid-state transactions
17:36:11 <stepcut> hub needs to make two changes, IMO. 1. an easier name to say/type 2. it needs to use the 'darcs send' HTTP POST functionality to allow for super easy patch submissions
17:36:46 <donri> (hm. actually acid-state events are more like patches in that they're not snapshots. checkpoints are snapshots :p)
17:36:53 <stepcut> :)
17:37:11 <donri> but still, git is basically an immutable model
17:37:52 <stepcut> still can't beat the simplicity of darcs :)
17:38:30 <donri> git is simple too. two different kinds of simple
17:38:37 <mm_freak_> donri: even after months git drives me mad
17:38:45 <donri> i wonder if a DAG based patch theory model is possible
17:38:50 <mm_freak_> its user interface is total crap IMO
17:38:56 <donri> yea
17:39:06 <donri> git push remote :branch
17:39:12 <donri> that's how you delete a remote branch
17:39:43 <donri> it's perfectly sensible, but only once you understand every concept involved in the operation :p
17:40:05 <mm_freak_> i think GHC is the culprit…  they shouldn't have moved to git, but improved darcs instead
17:40:15 <mm_freak_> or come up with a different haskell-based solution
17:45:36 <donri> seems the main point for their switch (and the argument against darcs from git users) is the in-repo branching...
17:46:03 <donri> AFAIK the darcs developers agree that it needs to happen but that we need a good design (and implementation)
17:46:16 <donri> not having branches is a big part of darcs simple UI
17:46:42 <donri> but having to manually manage branches is cumbersome
17:56:01 <stepcut> really, with 4-5 full time people working on darcs/hub, it could be dramatically better.. just not sure who would fund that :)
17:57:22 <donri> probably more worthwhile to fund cabal development first
17:58:45 <donri> would be cool to have a bunch of money and give grants to fund such projects, the way the perl community does
17:58:58 <stepcut> yup
17:58:59 <donri> of course, much more money in perl
17:59:17 <stepcut> perl is dead, long live perl
17:59:56 <donri> perl aint dead, they're rewriting it in scala
18:00:42 <stepcut> yeah, they have rewriten it in haskell, perl, scala… still ain't working ;)
18:00:42 <stepcut> lunch, bbl
18:01:20 <donri> \o/
18:01:21 <donri> me too
18:03:41 <noser> re :D
19:30:04 <donri> mm_freak_: any draft for ircwire? i need to implement a server for a somewhat similar protocol at some point and pondering if to use pipes or netwire. it's less obvious how to do it with netwire :)
19:30:17 <donri> (DICT protocol)
19:30:29 <mm_freak_> donri: you would rather use netwire /and/ pipes
19:31:00 <mm_freak_> but don't wait for me to do it…  could well take a few months, before i even start
19:31:07 <donri> heh ok
19:31:22 <mm_freak_> remember that netwire is an FRP library, not a stream processing library
19:31:28 <mm_freak_> you would use it on a high level
19:31:48 <mm_freak_> like channels :: ChatWire a (Map ChannelName Channel)
19:31:51 <donri> yeah that was my thinking but people (you even?) told me you'd use just netwire not both together
19:31:58 <donri> that was re irc maybe
19:32:20 <mm_freak_> or perhaps even:  channels :: (Session s) => ChatWire s a (Map (ChannelName s) (Channel s))
19:32:48 <donri> or maybe that was stepcut
19:32:52 <mm_freak_> s being a phantom type to carry data about essential things like how to compare nicknames
19:33:50 <donri> anyway guess i should start with the pipes side of things first and see later if it'd be a good fit for wire frp
19:34:38 <mm_freak_> certainly netwire would be a big win for any stateful network application, but you have to write the basic wires first
19:34:41 <mm_freak_> it involves some work
19:34:52 <donri> i'm just not sure how stateful it is
19:37:03 <kxra> stepcut: i never resolved that issue with the port number
19:37:09 <kxra> i run './dist/build/example-dot-org-server/example-dot-org-server --hostname kxra.info --http-port 8000 --hide-port'
19:37:32 <kxra> and nginx listens on port 80 and passes localhost
19:37:39 <kxra> :8000 through
20:12:44 <stepkut> hmm
20:34:34 <stepkut> kxra: that is how I use clckwrks with apache.. my guess is that the ngix config is not quite right.. do you have a link to the config still?
20:36:05 <McManiaC> stepkut: what's wrong if my happstack server receives strings with the wrong encoding from my (windows) client?
20:36:16 <McManiaC> stepkut: the html document contains charset etc.
20:36:39 <stepkut> McManiaC: is your client a web browser? or something else
20:36:47 <McManiaC> yeah webbrowser
20:36:52 <McManiaC> just standard google chrome
20:36:53 <stepkut> which one?
20:37:35 <McManiaC> chrome shows utf-8 as encoding (under tools -> encoding)
20:37:57 <McManiaC> server is running on freebsd with utf8 as sys encoding
20:38:26 <stepkut> under ≡ -> tools -> encoding, what does it say the page encoding is ?
20:38:29 <stepkut> oh...
20:38:38 <stepkut> also.. what version of happstack-server and network ?
20:39:00 <McManiaC>    happstack-server-7.1.6
20:39:02 <McManiaC>    network-
20:39:15 <stepkut> that's your problem
20:39:29 <stepkut> network- completely changed the values that unEscapeString returns
20:39:35 <stepkut> they should have bumped the version to 2.5, but they did not
20:39:42 <McManiaC> oh
20:39:43 <stepkut> if you upgrade to happstack-server-7.1.7 it should work again
20:40:07 <McManiaC> ok will try
20:40:53 <stepkut> alas... following the PVP only works if everyone does it right
20:42:17 <McManiaC> perfect
20:42:23 <McManiaC> works again, thanks
20:43:50 <stepkut> no problem!
20:43:58 <stepkut> I posted about this on the mailing list :p
20:44:02 <donri> so stepkut solved it by making a new release of happstack-server without following pvp!
20:44:12 <stepkut> :)
20:44:20 <stepkut> yeah.. I'm such a jerk
20:44:31 <donri> jerkery shaw
20:44:44 <stepkut> but, at least what I did does not result mysterious runtime errors
20:44:52 <donri> :)
20:45:02 <McManiaC> stepkut: sorry, dont read it that frequently
20:45:17 <McManiaC> i simply thought i forgot something, like the encoding meta tag
20:50:47 <stepkut> nope
23:48:31 <stepkut> is there something that makes in-repo branches inherently difficult? seems like the stupid version would just have multiple _darcs directories and allow you to switching between them, updating the local repo to reflect what ever patches are different between the two repos?
23:48:40 <stepkut> but.. I have not looked at this at all
23:49:04 <stepkut> just wonder if it is actually hard to implement, or something easy, but time consuming enough that it has not been done
23:49:12 <stepkut> and.. meant to be in #darcs :)
23:59:15 <donri> stepkut: i'd think it'd be easy to implement, too, but making the UI right is another matter
23:59:24 <donri> that's an important selling point of darcs
23:59:56 <stepkut> indeed