02:54:34 <kxra> stepcut: is this up to date? http://www.haskell.org/haskellwiki/Web/Comparison_of_Happstack,_Snap_and_Yesod#Features
02:55:01 <kxra> i'm curious about the differences between lazy IO, enumerator, and conduit
02:56:25 <stepcut> yes, though it is missing the information about authentication and authorization
02:57:01 <stepcut> the differences are mostly boring between lazy IO, enumerator, and conduit (and pipes)
02:57:22 <stepcut> also, the (unreleased?) versions of snap uses io-streams
02:58:13 <stepcut> the frameworks are high-level enough that you don't really see the nitty-gritty of what the underlying IO scheme is too often
02:58:27 <kxra> stepcut: ah. aren't there any obscure advantages or disadvantages?
02:58:42 <stepcut> yes
02:58:58 <kxra> like, things that make certain things easier, or things that help/hurt on a large scale?
02:59:15 <stepcut> for the people that are actually hacking on the low-level code, it is easier to avoid space leaks and reason about usage with something like pipes instead of lazy IO
02:59:45 <stepcut> when people send patches to the core I have to study them a bit and make sure they are not going to accidentally force the entire Request or Response into ram by accident
03:00:05 <stepcut> the end users don't see that much because they have been mostly abstracted from it
03:03:06 <stepcut> I'm pretty interested in pipes
03:03:36 <stepcut> but.. it keeps on improving in breaking ways :)
03:04:16 <stepcut> but, that is what hyperdrive currently and will mostly continue to use
03:04:40 <stepcut> hopefully I can get some more work in an hyperdrive this week, but the hsp changes are sucking up a bunch of time at the moment
03:04:51 <stepcut> I need to hammer out a better API for hyperdrive
03:08:19 <kxra> stepcut: what keeps improving in breaking ways?
03:08:33 <stepcut> pipes
03:09:53 <kxra> oh i didn't even realize these were specific packages!
03:10:21 <kxra> lazy io is just a concept, not a specific package right?
03:12:54 <kxra> and hyperdrive will replace the current happstack server eventually using pipes or conduit?
15:54:53 <stepkut> kxra: yeah, hyperdrive will be the underyling http server in Happstack 8
15:56:57 <kxra> stepkut: cool
15:59:33 <stepkut> lazy IO is fairly heavily ingrained into 'base'
15:59:54 <stepkut> but it is basically, IO  + unsafeInterleaveIO
16:00:27 <stepkut> it could mostly be made into a separate library likes pipes, conduits, etc, though it would still require that primop
16:01:11 <stepkut> pipes, conduits, etc, attempt to solve the problem by using IO + data-types and no special built-in operations
16:01:37 <stepkut> there are of a course, many libraries built on the low-level pipes, conduits, etc, libraries
16:02:50 <stepkut> I'm not sure I would say that lazy IO is just a 'concept' compared to 'pipes'. They are both ways of doing IO.. with lazy IO though, nothing appears in the type-system
16:03:07 <stepkut> so you can't even tell that you are using it -- which is one of the complaints about it
16:13:40 <stepkut> kxra: this was posted recently -- people seemed to like it, http://www.reddit.com/r/haskell/comments/1i438a/skills_matter_in_the_brain_of_edsko_de_vries_lazy/
16:15:35 <kxra> stepkut: interesting. thanks so much for all this. this'll help me a lot as i'm learning more
16:15:51 <kxra> currently on hold because i'm travelling, but i'll pick back up in a week hopefully
16:16:16 <stepkut> cool
16:16:34 <kxra> stepkut: unrelated, is twisted (the python thing) unnecessary in haskell?
16:16:51 <stepkut> apparently :p
16:17:13 <stepkut> I have no idea what twisted is -- I've never used python
16:18:02 <stepkut> skip straight from C to Haskell about 12 years ago
16:18:02 <kxra> it does some fun asynrchonous stuff and some of the info about it refers to haskell
16:18:08 <kxra> wow, nice. i have played with a lot of languages, but never stuck with one
16:18:20 <kxra> Java -> C/PHP/JS -> python -> ruby -> haskell
16:19:00 <kxra> but i'm pretty set on haskell
16:19:14 <kxra> so i'm really excited to actually become fluent for once
16:19:32 <stepkut> oh, it is some sort of event driven thing
16:19:40 <kxra> "Twisted is an event-driven networking engine"
16:19:40 <kxra> yeah
16:19:40 <kxra> does some asynchronous stuff
16:20:06 <donri> hehe i commented in a three month old thread and then three months later kxra commented on me ;)
16:22:22 <stepkut> yeah -- no need in Haskell. The haskell threads are so freakin fast and the interthread communication stuff is so good there is no reason to hurt your brain trying to write event driven code
16:22:39 <kxra> donri: i wa looking back at that thread for a comment i left, but the comment i left didn't have what i wanted, but i saw your comment and liked it [=
16:22:49 <donri> \o/
16:23:14 <kxra> stepkut: really? not even for big big things?
16:23:16 <stepkut> kxra: go on..
16:23:16 <kxra> seems like event driven stuff can't just be to overcome python's slowness, can it?
16:23:19 <donri> kxra: i was liek "silly kxra that comment is three month old" ... "oh look the thread itself is 6 month old!" i did the same :$
16:24:19 <donri> kxra: basically ghc rewrites blocking IO code to epoll
16:25:08 <kxra> donri: ah, so the functionality of twisted is taken care of there?
16:25:24 <donri> and the threads are green threads that can be distributed over N OS threads
16:26:39 <donri> well the twisted core and event loop is basically pointless in haskell yes
16:26:50 <kxra> stepkut: have you heard of ATS lang and Mercury? Those are the other things that i thought looked cool, but were not stable/popular enought to be practical to use
16:26:53 <kxra> donri ^^
16:26:53 <stepkut> I think I poked at both a little
16:27:00 <donri> twisted itself is a rich framework of composable classes
16:27:04 <donri> it's kind of shit though :p
16:27:12 <stepkut> event driven stuff is useful if you have slow threads and more thread communication mechanisms
16:28:58 <stepkut> but Haskell has super-fast threads and STM (among other things)
16:29:09 <kxra> ah, i see
16:31:26 <stepkut> it takes something like 2 seconds to create 1,000,000 threads in Haskell
16:32:09 <stepkut> and switching between threads is very fast
16:36:55 <kxra> haskell is a total dreamboat
16:37:22 <stepkut> yup
16:37:31 <stepkut> mostly
16:38:02 <stepkut> it's support for proofs is pretty weak
16:38:10 <stepkut> not surprisingly
16:38:27 <donri> and the syntax is sort of batshit insane madness
16:38:42 <kxra> stepkut: why unsurprisingly? is that handled better by mercury or ATS?
16:38:44 <stepkut> the syntax is mostly ok, IMO, except for some really weird parts
16:38:52 <kxra> actually, i remember that was one of the main purposes of ATS
16:38:57 <kxra> right?
16:38:58 <stepkut> kxra: no, it is better handled by things like Agda, irdis, epigram
16:39:24 <donri> stepkut: ever tried to manipulate haskell code in any way without a full on parser?
16:39:31 <stepkut> actually perhaps ATS as well
16:39:35 <donri> even HSX is imperfect ...
16:39:38 <stepkut> I was confusing ATS with a type assembly language
16:39:43 <donri> uh HSE* and by extension HSX
16:39:52 <stepkut> HSX is dead! long live hsp!
16:39:57 <donri> :)
16:40:05 <stepkut> as of yesterday, we only have hsx2hs and hsp now
16:40:07 <donri> i want a dependently typed lisp
16:40:23 <stepkut> I guess hsx is still there in some sense.. but not as a separate package :-/
16:51:48 <donri> kxra: http://pages.citebite.com/b2x0j8q1megb ;p
16:52:13 <donri> twisted suffers similarly
18:03:21 <Clint> is there anything tutorial-like for happstack-authenticate?
18:12:20 <kxra> donri: haha good to see
18:13:10 <donri> kxra: so did you end up going back to colemak? i'm thinking of switching to workman
18:13:38 <donri> Clint: not to my knowledge, which could be dated
18:13:46 <kxra> donri: Nah, switching from colemak to dvorak was enough, and there wasn't a clear winner. what's workman?
18:14:05 <donri> kxra: http://www.workmanlayout.com/
18:45:35 <kxra> donri: looks awesome!
18:46:12 <kxra> welp, i might start using that in a couple of month
18:46:14 <kxra> s
18:46:16 <kxra> or sooner
20:12:02 <stepcut> Clint: let me check
20:34:51 <kxra> stepcut: have i already asked whether you'd consider taking interns from the Gnome Outreach Program for Women?
20:36:40 <stepcut> Clint: there is a working demo, http://hub.darcs.net/stepcut/happstack/browse/happstack-authenticate/demo-blaze, but it is definitely lacking suffcient levels of documentation still
20:36:46 <stepcut> kxra: you have not
20:37:39 <Clint> stepcut: thanks
20:41:44 <kxra> stepcut: well, it's a big thing that's pretty cool. lots of orgs participate including tor, mozilla, wikimedia, and others
20:42:29 <kxra> stepcut: google summer of code is cool too
20:54:31 <kxra> stepcut: it seems like those could be a good way to get new contributors
20:54:57 <kxra> i started the empowermentors collective and have at least one person from there that wants to learn haskell/happs with me
20:59:19 <uniquenick> is there a roadmap/plan/whatever for happstack online somewhere?
20:59:31 <stepcut> no
20:59:58 <stepcut> kxra: sounds interesting
21:00:35 <stepcut> the plan at the moment is to finish the hsp changes, get scoutess to rebuild the documentation, finish converting the crash course to the new build system, and working on hyperdrive
21:03:29 <Clint> is hyperdrive basically warp for pipes?
21:04:28 <donri> Clint: there's also the more ambitious plan to make the parser "self-proving"
21:04:44 <donri> (i don't know what it's called or what stepcut calls it)
21:05:02 <donri> basically prove that it's spec compliant
21:05:17 <Clint> aha
21:05:21 <stepcut> Clint: the short version is yes
21:05:31 <donri> at compile/build time or with an exhaustive test suite
21:05:33 <stepcut> Clint: the long answer is that pipes vs conduits is just one of many different design decisions
21:05:36 <uniquenick> the http spec is awfully vague and ambiguous
21:05:43 <donri> is my understanding of stepcut's grand plans, anyway
21:06:00 <donri> uniquenick: well it does have bnf grammars for parsable stuff no?
21:06:27 <uniquenick> sorta
21:06:34 <stepcut> uniquenick: indeed! Some parts are well specified, and other parts are vague, and none of the implementations are very forth coming about what they actually try to do and if they are doing it correctly
21:09:37 <stepcut> or removed
21:10:05 <stepcut> is anyone actually using HSP.Widget? I know seereason has a local copy of that stuff unless it was refactored to use the stuff from scaffolding
21:10:21 <donri> i don't even know what that is
21:10:32 <stepcut> oops
21:10:34 <stepcut> wrong window
21:10:39 <donri> :)
21:10:49 <uniquenick> I found this to be a helpful "weird http stuff to watch out for" rant: http://www.and.org/texts/server-http
21:11:31 <stepcut> uniquenick: yes.. some of that stuff could be caught by actually checking that the parser conforms to the spec
21:12:03 <stepcut> that page is part of what inspired hyperdrive
21:13:06 <stepcut> basically.. http is so wacky that you need a collection of different technics to try to show that your implementation does the best thing possible -- and a good record of why it implements certain behaviors that may look incorrect at first
21:13:23 <stepcut> such as compatibility with buggy browsers
21:13:39 <stepcut> otherwise you'll never know if it is ok to 'fix' something
21:13:47 <uniquenick> is hyperdrive on one of the darcsy sites?
21:14:17 <stepcut> no, it uses a different sucky RCS, https://github.com/stepcut/hyperdrive
21:14:28 <stepcut> alas, hyperdrive is not yet too exciting :)
21:14:42 <stepcut> in fact, it is mostly crap at the second
21:14:49 <uniquenick> meh, the whole world lives on github, it is hard not to get dragged along
21:15:07 <stepcut> the current focus is to fix the high-level API in Serve.hs
21:15:29 <stepcut> I have some specific goals in mind there
21:15:50 <stepcut> once that is right, then I will work on integrating in the real parser
21:16:15 <stepcut> pipes keeps changing substantially though
21:16:20 <stepcut> but it is getting close to settling down
21:16:33 <stepcut> though the API and parsing stuff shouldn't be affected much
21:16:40 <stepcut> so I can hammer on those once this HSP stuff is done
21:42:22 <kxra> stepcut: no need for interns to help finish that plan? [=
21:42:29 <kxra> i think the next round of internships is in a few months
21:56:28 <stepcut> I'd need more information