09:55:17 <donri> [not particularly original] idea: "merge" hsp templates, so you write page templates as full html documents and then lift out the relevant bits to the layout template
09:55:42 <donri> or is this already done?
10:00:41 <donri> it solves the same problem as yesod widgets, but IMO more naturally so
13:39:38 <mightybyte> donri: It's called Heist. ;)
14:00:01 <donri> well, the idea for me comes from genshi which heist is certainly similar to
14:00:45 <mightybyte> Ahhh
14:57:04 <donri> I think reddit karma has the opposite effect on me: if I know I'll get downvoted, I *have* to post.
14:57:24 <donri> (but only if it's a real post, no trolling)
15:05:39 <parcs`> donri: just prefix your post with "i know this will get downvoted, but.."
15:05:46 <parcs`> instant upvotes
15:07:10 <donri> i prefer to edit later and call them on their predictability
15:07:42 <donri> as i said i *like downvotes* :D
15:07:50 <donri> why would i go for instant upvotes then
15:35:01 <Lemmih> srhb: How's code?
15:35:38 <srhb> Lemmih: Coming along! You?
15:36:00 <srhb> Am currently being abused by the Get Monad, but one of us will cave eventually I'm sure.
15:37:08 <Lemmih> srhb: Not bad. Keeping busy with work here in Switzerland.
15:37:36 <srhb> Lemmih: Switzerland? I think I missed something. :-)
15:39:18 <Lemmih> I was offered a job in Zurich. Initially I didn't wanna go because of school but I squared it with our lecturer to do my project with my new employers.
15:39:27 <srhb> Nice!
15:39:34 <srhb> Congratulations. :) Exciting things?
15:40:23 <Lemmih> I'm playing around with Haskell and bayesian models, so yes. (:
15:40:36 <srhb> Sounds perfect!
15:40:52 <Lemmih> But Zurich is a little bit more expensive than I had imagined.
15:41:21 <srhb> Must be cheaper than Copenhagen though?
15:41:48 <Lemmih> Nope. :(
15:42:16 <srhb> Ow.
15:42:30 <Lemmih> I look at a take-out menu and the cheapest pizza is like 100dkk.
15:42:34 <srhb> O_o
15:44:37 <Lemmih> But the weather is great. And I'm going skiing next week :D
15:44:46 <srhb> I'm jealous!
15:44:55 <srhb> It sounds like you caught a really sweet deal there. :)
15:45:25 <Lemmih> Totally. Good things come to those who Haskell.
15:46:12 <srhb> I sure hope that's it; perhaps I will be struck by the same fortune. :)
15:46:47 <Lemmih> There's a new chapter of HP:MOR for you to read.
15:46:58 <srhb> I feel like I've finally risen from complete noobness.
15:47:00 <srhb> HP:MOR?
15:47:48 <Lemmih> hpmor.com, greatest harry potter fanfic ever.
15:48:18 <srhb> I'll have a look once I get this working. I hadn't heard about it. :)
15:49:36 <Lemmih> Written by the guy behind lesswrong.com and overcomingbias.com
15:50:11 <srhb> Ah, I've enjoyed lesswrong.com before, but I forgot about it.
15:50:46 <donri> omgomg new chapter
15:51:17 <Lemmih> And I can't read it because I'm at work! Oh noes!
15:58:42 <stepkut> Lemmih: where you thinking something like this? http://patch-tag.com/r/stepcut/relational/snapshot/current/content/pretty/Relational.hs
15:58:49 <stepkut> Lemmih: demo starts around line 450
15:58:58 <stepkut> Lemmih: won't have time to finish it up for a while though
15:59:50 <stepkut> (or line 584 if you want even less setup)
16:02:15 <Lemmih> I was thinking about something even less typed.
16:02:35 <stepkut> just [[String]]
16:02:36 <stepkut> ?
16:02:51 <stepkut> or [[Text]]
16:03:05 <Lemmih> A little bit more typed than that.
16:03:12 <Lemmih> Or, wait, do you mean for results?
16:03:55 <stepkut> no. i meant only allowing the columns to have the type 'Text'
16:04:48 <Lemmih> Oh, hm, well yes. Kinda.
16:04:55 <stepkut> right now (in theory) the columns of the database can have any Haskell type
16:04:57 <Lemmih> Some fixed set of types.
16:05:11 <stepkut> would be possible to narrow it down to a limited set of types
16:05:47 <stepkut> which would allow you to get rid of the use of dynamic
16:06:12 <stepkut> but I am not sure if less is more
16:08:10 <Lemmih> I'll think about it some more later.
16:08:11 <stepkut> being able to use any Haskell type for the columns is pretty neat, imo
16:08:50 <stepkut> you don't have to try to convert, data Gender = Male | Female | Other, to String and back.. you just store Gender in the database
16:09:20 <Lemmih> We have too much neatness in Haskell.
16:11:33 <Lemmih> Imagine if SQLite was persistent. That would rock.
16:12:39 <Lemmih> Even a persistent BerkeleyDB would rock.
16:15:36 <stepkut> well. you are welcome to do it your way :)
16:18:10 <donri> what ever do you really mean by persistent though, transactions?
16:20:08 <stepkut> with some refactoring it might be possible to split the code out so that you could have a version that uses a limited set of types, or which allows any type (via Dynamics)
16:20:38 <Lemmih> Yeah, actually. Except that most DBs deal with transactions really badly.
16:20:56 <donri> zodb keeps a transaction history that you can rollback later etc
16:21:06 <donri> granted it's not really *relational* either
16:21:25 <Lemmih> I don't want to rollback. I want to keep old versions available.
16:21:37 <donri> well yea, that's what it does
16:22:07 <Lemmih> So it acts a bit like Data.Map?
16:22:13 <donri> i just meant to say that transactions are not discarded after being comitted
16:22:37 <donri> zodb is a persistence system for python objects
16:23:18 <Lemmih> They use the word 'persistence' differently than us.
16:23:37 <Lemmih> Data.Map is persistent because an insert doesn't mutate the structure.
16:23:51 <Lemmih> IORef is not persistent.
16:24:06 <Lemmih> SQLite is not persistent.
16:25:12 <srhb> So persistency becomes a performance thing?
16:25:15 <donri> i think zodb works a lot like acid-state
16:25:21 <srhb> Mutating things for an insert >> bad
16:25:28 <srhb> ?
16:25:30 <donri> it restores state by traversing a transaction history
16:25:52 <donri> srhb: mutation is *faster* but less predictable/reliable
16:26:12 <srhb> Right.
16:26:22 <Lemmih> And more evil.
16:26:46 <donri> well, the evil follows from being less predictable/reliable ;)
16:27:09 <Lemmih> I would say it's the other way around. (:
16:34:51 <Lemmih> srhb: Acid-state requires that you always have read access to the structures you're using. That unfortunately makes it difficult to use something like SQLite or BerkeleyDB.
16:36:48 <srhb> Lemmih: As an underlying data store, or what do you mean?
16:37:04 <Lemmih> Yes.
16:37:11 <srhb> Heh, that would be rather cool.
16:37:34 <Lemmih> Yeah, wouldn't it?!
16:37:39 <srhb> Totally. :)
16:37:39 <Lemmih> It would be awesome.
16:38:28 <Lemmih> As a bonus, people would stop bugging me about RAM limitation.
16:39:06 <srhb> I guess you don't consider that the prime motivation for such a data store, then. :P
17:02:19 <stepcut> Lemmih: so I was thinking about it.. and I think that a version of relational that only supports standard SQL types would be useful (in addition to a version that is more liberal).
17:02:32 <stepcut> Lemmih: but I won't have time to look at that code against until April or later
17:04:19 <Lemmih> Time is of no importance, only correctness is important.
17:05:27 <stepcut> Lemmih: time is actually of importance.. but correctness is more important :)
17:05:30 <stepcut> Lemmih: did you see this, http://www.reddit.com/r/haskell/comments/qoxrq/implementing_something_that_simulates_virtual/
17:05:47 <stepcut> Lemmih: not that there is much to see..
17:07:50 <srhb> All we need is "unthunk"
17:13:37 <stepcut> I wonder what useful things could be done if acid-state had some way to export the 'schema' to an external file as well.. for example, could we then write a general purpose tool that would allow you to inspect a saved checkpoint (with out having to compile it againts your application to get the app specific types in scope)
17:15:18 <stepcut> the binary file that can only be read if you have the original types around seems to scare a lot of peopleĀ… but if there was a schema in the directory as well. then in theory you should be able to write a tool that can recover your database even if all you have is the state directory and you have lost your original source code?
17:19:04 <stepcut> Lemmih: I added the relational stuff to the AcidState wishlist, http://code.google.com/p/happstack/wiki/AcidStateWishlist
17:19:37 <stepcut> which is linked to from here, http://code.google.com/p/happstack/wiki/GoogleSummerOfCode
17:20:10 <stepcut> I need to do a better write-up of the ideas and see if we can get some student excited
17:20:26 <stepcut> Lemmih: are you still planning to apply to GSoC ? Or has your situation changed now ?
17:23:56 <Lemmih> My situation has changed. I still want to but I may be busy with work all summer.
17:25:10 <stepcut> would you possibly have time to mentor for acid-state if the right project/student came along?
17:29:48 <Lemmih> Possibly.
17:31:18 <Lemmih> I will think it over and then make a decision.
17:31:43 <stepcut> k
17:31:51 <stepcut> no commitment required yet
17:32:06 <stepcut> don't even have a clean project/student on deck yet :p
18:15:16 <donri> why does google call that a wiki when you can't even edit it logged in
18:25:06 <donri> "jeff shaw", how confusing
18:34:18 <alpounet> stepcut, uh, http://about.travis-ci.org/blog/announcing_support_for_haskell_on_travis_ci/
18:56:03 <stepcut> alpounet: and?
18:57:27 <stepcut> donri: it is a wiki.. but I think edit access is whitelisted
18:57:40 <alpounet> stepcut, well, they kind of cover many stuffs we wanted to
18:57:54 <stepcut> alpounet: 'kind of' is not good enough
19:15:33 <stepcut> if I wanted 'kind of' I'd use php and mysql :p
19:31:53 <alpounet> hah
19:31:54 <alpounet> alright.
19:34:15 <alpounet> stepcut, i'll most likely have addPackage :: SourceInfo -> LocalHackage -> IO () (or m () with m being a MonadIO, or whatever) by tomorrow
19:34:24 <alpounet> it's partly implemented
19:34:43 <alpounet> but i have to do it in a quite annoying way...
19:35:05 <alpounet> the .tar.gz files must contain a <package>-<version> dir
19:35:15 <alpounet> and it's not the way we have them, neither the way hackage has them
19:35:33 <alpounet> that's a bit annoying but i'll try to have this working by tomorrow yeah
19:36:57 <alpounet> it's just about moving files and dirs around
19:50:34 <stepcut> k
19:50:36 <stepcut> sounds good
20:40:53 <stepcut> apparently *every* web framework on the planet is scalable and makes it easier to rapidly build and deploy web applications
20:50:50 <alpounet> isn't that awesome, man
20:54:40 <stepcut> :)
20:55:17 <stepcut> still trying to figure out the one framework that is slow, unscalable, and makes it pain to deploy web applications that everyone is claiming to be better than :p
20:55:44 <stepcut> going to have to update the happstack website
20:55:59 <stepcut> get rid of that meaningless talk about ease of use and scalability
20:57:30 <stepcut> "Happstack is all things to all men! It will put hair and your chest, make your penis larger, or increase the size and firmness of your breasts. I will pay off your mortgage, put your kids through college and buy you a beer when you are feeling down. It will never kick the dog, and will always remember your birthday!"
21:02:50 <alpounet> hahaha
21:07:00 <alpounet> that'd be fun to actually put that on the website
21:14:39 <donri> "If however you're a woman, you might like to try the Oh Snap! framework instead."
21:14:53 <donri> complete the sexism while we're at it
21:19:08 <stepcut> I had penis enlargement and/or breast enlargement.. something for everyone!
21:19:20 <stepcut> but I think I have even better idea now
21:20:15 <stepcut> still. that copy might work better than what we have now.. at least it is *different* than what everyone else is saying :)
22:06:04 <donri> :D