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