00:21:00 <shapr> ACTION fights with ghc 6.12 for happstack purposes
00:24:28 <shapr> takes looong to grab cabal & cabal-install from hackage.
00:24:31 <shapr> er, from darcs
00:24:48 <shapr> I wonder if darcs could do checkpoints happs-style?
00:25:03 <shapr> er, wait, that's darcs tag & optimize, yeah?
00:26:32 <shapr> ACTION is bored waiting for darcs
00:34:21 <sm> hi shapr.. why do you need Cabal & cabal-install from darcs ?
00:34:35 <shapr> There's no ghc 6.12 for ubuntu karmic.
00:34:47 <shapr> So I got the generic 64-bit binary from haskell.org
00:34:50 <shapr> but it doesn't have cabal
00:34:54 <shapr> and I want to do cabal install gitit
00:35:13 <shapr> I used update-alternatives, but cabal's Setup can't find ghc-pkg
00:36:39 <sm> in this situation, seems like I'd be downloading the tarball from http://www.haskell.org/cabal/download.html and running bootstrap.sh
00:36:59 <shapr> Well, I was trying to build cabal 1.8
00:37:13 <sm> once you get any cabal installed, you can cabal install cabal to get 1.8
00:37:15 <shapr> I think I'll follow your advice.
00:37:17 <shapr> Yeah, good point.
00:37:23 <sm> ACTION has done it a few times now
00:37:35 <shapr> I like to do things differently to see if there are any problems, and how difficult.
00:37:39 <sm> cool
00:37:57 <shapr> This is still pretty painful.
00:38:18 <sm> but you're right, if the cabal repo is insufficiently tagged that could make it slower
00:38:25 <sm> it's probably also in darcs 1 format
00:39:14 <shapr> Parsec is not installed...
00:39:31 <shapr> This is going to suck.
00:41:02 <sm> yes. Get a cabal binary installed as quickly as possible :)
00:41:10 <shapr> Still can't find ghc-pkg
00:41:48 <sm> that should have come with your ghc install surely
01:03:34 <shapr> Why the heck does gitit require QC < 2 ?
01:05:36 <shapr> Seriously, what's up with that?
01:05:41 <shapr> That's gotta be fixed.
03:28:08 <shapr> ACTION sighs
03:34:15 <gwern> shapr: I forget. no doubt it's some dep being naughty
03:36:36 <gwern> that's what happened with lambdabot
03:36:48 <gwern> tagsoup had a pointlessly specific qc dep
03:40:28 <shapr> gwern: Who has privs to fix that?
03:40:37 <gwern> ndm, presumably, being tagsoups' dev
03:40:47 <shapr> I mean for gitit
03:41:01 <shapr> happstack-util-0.4.1 requires QC < 2
03:41:43 <sm> I heard that darcs happstack has better QC dependencies
03:41:55 <shapr> Fair enough
03:42:28 <gwern> does it really?
03:42:41 <shapr> ACTION tries
03:42:42 <gwern> hm
03:42:44 <gwern> darcs failed:  Not a repository: http://patch-tag.com/publicrepos/happstack (Failed to download URL http://patch-tag.com/publicrepos/happstack/_darcs/inventory: HTTP response code said error)
03:42:55 <shapr> darcs get http://patch-tag.com/r/mae/happstack
03:43:08 <shapr> from http://patch-tag.com/r/mae/happstack/darcscommands
03:43:10 <sm> yes.. maybe with a --lazy for luck
03:43:13 <gwern> moved again?
03:43:22 <shapr> er, from http://happstack.com/tutorials.html actually
03:43:33 <sm> http://happstack.com/develop.html
03:43:34 <shapr> project is linked from "Resources"
03:44:42 <shapr> hmm
03:44:48 <shapr> ACTION tries build-install-all.sh
03:45:28 <gwern> ah much better
03:45:31 <gwern> the qc is conditional
03:48:03 <st3pcut> gwern: yeah, that is the wrong thing to do, but it is still an improvement  :)
03:48:23 <st3pcut> I need to update hackage soon though
03:51:12 <shapr> I get hissy fits about things I consider unnecessary complications.
03:51:27 <shapr> Because other users have less patience than even ME!
03:51:37 <shapr> At least, I suspect that's true.
03:52:15 <aavogt> hmm, 0.4.1 seemed not to have any problems installing here
03:53:10 <aavogt> oh, only a problem if you try to get gitit
03:54:06 <sm> cd happstack-darcs/; cabal install; cabal install gitit works, I assume
03:54:49 <sm> gitit is the primary happstack app I guess
03:55:13 <sm> it will be good when that just works again
04:08:16 <stepcut> I'll be glad when this stupid file descriptor leak problem is solved :(
04:08:30 <stepcut> so.. somebody hurry up and solve it!
04:09:28 <shapr> What's the problem?
04:10:20 <stepcut> shapr: let's say you are doing a non-blocking write() to a socket, and you get EAGAIN, so you do a write select() on the socket.
04:10:32 <stepcut> shapr: now the client resets the connection
04:10:50 <stepcut> shapr: the select() does not actually wake up. So you will sit there forever waiting to send data that can never be sent
04:11:23 <stepcut> if this happens enough, you will evetually exhaust all your file descriptors
04:13:22 <stepcut> in normal single threaded applications this is not a problem. You would normally do a read and write select() on the socket. When the select returns, you check to see if it was a read or write that woke you up. if it was a read and 0-bytes are available, then you know the connection was reset.
04:13:31 <shapr> I don't know anything about select...
04:13:57 <shapr> Ok, so multithreaded apps are the problem?
04:13:59 <stepcut> but in Haskell, we are very far abstracted from the select()
04:14:47 <stepcut> shapr: yes or laziness..
04:15:14 <shapr> hm
04:15:42 <stepcut> shapr: the problem with multithreaded apps is that you have one thread reading, and one thread writing, but they don't know about each other. When the reading thread gets info that the connection is closed, it can handle it.. but no one ever tells the writing thread about it.
04:15:55 <shapr> Oh
04:16:06 <shapr> What's the best fix for that?
04:16:27 <stepcut> no idea :(
04:17:07 <shapr> It sounds like there should be a single structure for the socket that both read and write threads talk to.
04:20:31 <stepcut> shapr: dunno. The problem is that a lot of the reading/writing is done via hPut, hGet, which are used for non-socket stuff as well. And the use of select is buried deep in the bowels of the I/O libraries
04:26:10 <sm> stepcut: this is an issue in sendfile ?
04:30:31 <sm> well, better wind down, night all
04:33:04 <stepcut> sm: no, it is an issue with all network I/O in haskell as far as I can tell
04:33:16 <sm> ack
19:30:23 <shapr> yow!
19:30:25 <shapr> lambdabot: @yow
19:30:25 <lambdabot> Couldn't find fortune file
19:30:27 <shapr> aww
19:31:35 <shapr> Ok, I'm back for more attempts at website building.
19:32:27 <sm> yay
19:32:34 <sm> how far'd you get ?
19:32:43 <shapr> Um
19:33:12 <shapr> I grabbed from the repo and ran the build all script. Before I fell asleep it gave me an error.
19:33:46 <shapr> sm: What do you do for a living?
19:33:59 <shapr> sm: btw, I am pleased that you finally got around to doing Haskell :-)
19:34:10 <shapr> I remember poking you for years on #zope about learning Haskell :-)
19:34:16 <sm> freelance coding & sysadmin, currently mostly python and php
19:34:37 <shapr> And you've done great stuff!
19:34:56 <sm> that's right shapr.. I don't remember years of poking, but you turned me on to haskell with your web test script
19:35:06 <shapr> Awesome :-)
19:35:13 <sm> .. for which I thank you!
19:35:16 <shapr> Yay!
19:35:32 <shapr> I thank you for writing good code for which I now gain a benefit!
19:35:41 <sm> oh very good.. which code ?
19:35:59 <shapr> iirc, you've contributed to happstack, yeah?
19:36:02 <sm> ACTION thinks, maybe it was years.. 
19:36:17 <sm> hmm, let me check
19:36:25 <shapr> And you now know more than I do about happs, even though I was employed to hack on happs.
19:36:35 <shapr> Ok, where do I jump in...
19:36:37 <sm> 1 patch! :)
19:36:42 <shapr> I'll start with cabal install gitit
19:36:56 <shapr> cabal update && cabal install gitit
19:36:57 <sm> I'm a user of happstack, so trying to contribute with feedback etc.
19:37:04 <shapr> Who knows, maybe it got fixed while I was sleeping?
19:37:30 <shapr> What's current in the Plone world? Does Plone 3 use Zope 3?
19:37:32 <shapr> @quote plone
19:37:32 <lambdabot> Runaro^BRS says: shapr: A plone replacement? Call it plwn.
19:37:36 <shapr> ACTION laughs
19:37:44 <sm> no it doesn't
19:37:47 <shapr> Aww
19:37:56 <shapr> Huh, it says gitit is installed!
19:38:09 <shapr> Awesome, when did that happen?
19:38:28 <shapr> Cool, I have a binary in ~/.cabal/bin/
19:38:48 <sm> @faq can haskell do that ?
19:38:48 <lambdabot> The answer is: Yes! Haskell can do that.
19:38:51 <sm> heh
19:38:52 <shapr> :-)
19:39:31 <shapr> Ok, I want to build website with Haskell. A wiki based website would be preferable, gitit is the best choice, yeah?
19:39:52 <sm> I guess so
19:40:08 <shapr> Have you tried to sell any Haskell based websites to clients?
19:40:44 <sm> not yet. I've tried hard to imagine converting my legacy php monster to haskell in an economic way.. but so far failed
19:41:05 <shapr> Can you duplicate the functionality?
19:41:06 <sm> still getting productive with haskell.. I am mostly learning through hacking on hledger
19:41:19 <sm> duplicating it would take a long time
19:41:46 <shapr> I guess my question is, what could not currently be done with Haskell?
19:41:47 <sm> doing little proof-of-concept experiments whenever I can afford to
19:42:17 <sm> well, one thing I haven't seen is a nice production-ready framework for building web uis
19:42:30 <shapr> Oh, a remix of john wiegly's code!
19:42:32 <shapr> He's such a cool guy.
19:42:38 <sm> yes indeed
19:42:41 <shapr> He tried to learn Haskell for awhile. :-/
19:42:46 <shapr> He got overwhelmed by #haskell
19:42:52 <sm> he likes it.. we hang out in #ledger
19:42:56 <shapr> oh!
19:42:57 <sm> you must join us :)
19:43:09 <shapr> Awesome!
19:43:16 <shapr> John is just such an awesome guy.
19:43:51 <shapr> Ok... hm
19:44:09 <shapr> Is there anything that builds web UIs in Haskell?
19:44:26 <shapr> What comparable tool non-Haskell would you like to see in the Haskell world?
19:46:51 <sm> I'm thinking of whatever nice apis django and rails have for building web forms, ajax things, jquery effects.. that's all still coming together in the haskell world
19:46:58 <shapr> Let's see, Bazerman is doing the javascript compiler stuff...
19:47:28 <shapr> jmacro, that's it.
19:49:00 <shapr> I've seen efforts to build webforms in Haskell, it always looks painful.
19:49:20 <shapr> I wonder if at this point we could skip the piece-by-piece work and go for pure ajax front ends?
19:49:36 <sm> yeah. stepcut and mightybyte have been working on the formlets lib, but it's not yet easy
19:50:03 <shapr> ACTION reads about formlets
19:50:07 <shapr> http://www.haskell.org/haskellwiki/Formlets
19:50:54 <sm> much as I love it, in this case (monster OO php app) I really think haskell comes third as a reimplementation platform, after smalltalk and python
19:51:09 <shapr> Using seaside?
19:51:15 <shapr> Yeah, I understand.
19:51:21 <sm> yes probably
19:51:24 <shapr> Python has a lot of inertia.
19:51:43 <sm> web2py is nice, and django is a safe bet
19:52:23 <shapr> hiya trin_cz
19:52:25 <sm> but these are all pipe dreams for now. I can't rewrite this thing :)
19:52:49 <sm> shapr: what's #work for you these days ?
19:52:51 <trin_cz> shapr: hi there?
19:52:51 <sm> $work
19:52:53 <shapr> Yeah, I built a Plone website for a German university in 2001 or so.
19:52:59 <shapr> sm: I'm an unemployed student.
19:53:06 <shapr> trin_cz: Greetings! How's code?
19:53:09 <sm> yay
19:53:10 <mightybyte> shapr: Formlets does a decent job of doing html forms in haskell.
19:53:27 <shapr> hiya mightybyte! I haven't talked to you since hac-phi!
19:53:42 <mightybyte> There is still room for improvement, but it works and frees you from a lot of the tedium.
19:53:53 <mightybyte> Yeah, it's been awhile.
19:54:03 <mightybyte> I've been here most of the time since then.
19:54:19 <shapr> sm: I live in the northwest corner of Alabama right now, for family and educational reasons. I have seen TWO tech jobs available here since Halloween.
19:54:50 <shapr> sm: So, I figure I can probably scare up a bunch of local work building websites, and nobody will care how those websites are implemented, as long as they work.
19:55:00 <sm> sounds good to me!
19:55:09 <shapr> Thus I want to figure out if I can build useful websites with Haskell!
19:55:36 <mightybyte> shapr: It's most certainly doable.
19:55:36 <shapr> I get enough people asking me to fix their computers, that's for sure.
19:55:40 <sm> at all ? or, as quickly/cheaply as with say php ?
19:55:54 <mightybyte> And there is a decent amount of effort being put into improving the situation.
19:55:55 <trin_cz> shapr: working for ipwnstudios, but no time for happs for a long time ...
19:56:17 <shapr> trin_cz: Ah, I've met Ryan in Boston, nice to meet you online!
19:56:37 <sm> I think it's hard to justify haskell for random folks' websites unless they have pretty complex web apps, need high reliability, want you to maintain it long-term..
19:56:47 <shapr> mightybyte: And if I'm getting paid to build Haskell websites, I'll have funding and motivation to improve the situation more!
19:57:02 <mightybyte> shapr: Definitely
19:58:39 <shapr> sm: I can justify building Haskell websites for clients because I'm highly motivated to write Haskell, and there aren't that many options here.
19:59:04 <sm> makes sense to me, anyway
19:59:13 <sm> wait, let me switch hats. There, that's better. Haskell is poised for massive success in web development. Good to have you aboard shapr!
19:59:18 <shapr> haha!
19:59:40 <shapr> I agree with your points, but personally, I just want to write Haskell.
19:59:52 <sm> same here.
20:00:10 <shapr> If I were to take the easy route, I would go back to my many years of experience with Plone.
20:00:28 <sm> one thing about plone - there is consulting work there
20:00:59 <shapr> But then, I learned Zope/Plone because I didn't want to take the easy route of using my J2EE knowledge, and the same for my previous VB knowledge, and ...
20:01:05 <sm> heh
20:01:13 <sm> forward!
20:01:47 <shapr> This process has bitten me with Plone's internationalization framework.
20:03:55 <sm> I wonder how.. but I'd better get back to it.. I was starting to god help me understand this php code.. biab
20:04:04 <shapr> ttyl
20:10:24 <shapr> ACTION reads...
20:46:03 <stepcut> shapr: gitit is nice, but GPL'd -- which may or may not be an issue depending on your needs
20:46:21 <shapr> I prefer GPL...
20:46:28 <stepcut> shapr: then perfect ;)
20:46:34 <shapr> I've been screwed over by companies that employed me too many times.
20:46:42 <stepcut> :)
20:47:11 <stepcut> well gitit is great then, because the GPL choice is out of your control
20:47:17 <shapr> :-)
20:47:45 <shapr> I would use BSD, if I felt I could trust companies to respond be anything other than free riders.
20:47:55 <stepcut> heh
20:54:28 <stepcut> happstack+hsp+formlets is pretty awesome for web 1.0 stuff
20:54:41 <stepcut> for fancy web 2.0 stuff there is still a gap.. I am working on some stuff though
21:48:32 <gwern> for haskell, bsd is game theoretic dominant
21:48:47 <gwern> one day we may be so successful that payouts shift and gpl becomes better
21:49:16 <gwern> ACTION sighs. does it feel to anyone else like 2008 and 2009 seemed more like the year of haskell?
21:51:15 <stepcut> 2010 is the year of Agda!
21:52:35 <gwern> hah. no, I see rather little buzz for agda
21:52:55 <stepcut> the calm before the storm
21:53:49 <stepcut> I've heard people saying that they feel like Haskell is starting to get the same vibe that Python did right before it made the switch from fringe to mainstream
21:53:54 <gwern> corpses are calm too
21:54:18 <stepcut> cannibal corpses ?
22:08:01 <trin_cz> stepcut: Agda being able to do reactive programming right seems like an interesting direction ... but still 2010 is too soon.
22:11:15 <stepcut> trin_cz: yeah, I need to finish that paper
22:11:47 <stepcut> trin_cz: but I've always said, Haskell isn't the ultimate language.. it is merely the language that the ultimate language will first be implemented in ;)
22:12:30 <trin_cz> stepcut: :D
23:17:01 <sm> shapr, as a weakening GPL proponent in haskell-land, I wouldn't mind hearing how you got screwed and how GPL could have helped