18:02:20 <zzing> Would it be a good idea to try to get a redirect from #happstack to here?
18:03:40 <stepkut> zzing: sure
18:04:27 <stepkut> in theory, it would be even better to register #happstack and get a redirect from here to there.. but the red tape for that would be insane I am sure
18:04:55 <stepkut> well.. depends if the #happs owner is around perhaps
18:05:43 <stepkut> founder for #happs is: freenode-staff
18:11:23 <zzing> heh
18:24:58 <stepkut> so.. I now have a data-type for ABNF. Next I need to make an ABNF -> Parsec function, and a Arbitrary ABNF instance
18:25:12 <stepkut> then I can randomly generate grammars and valid parsers for them :p
18:41:06 <zzing> and happy is not sufficient?
18:41:47 <stepkut> not for this
18:42:56 <stepkut> I am writting a parser for an ABNF specified grammar and I want to generate random test data to check that it works
18:59:00 <parcs`> does acid-state have substantial memory overhead (that is not due to the data structure itself)?
18:59:18 <stepkut> parcs`: no
19:00:34 <stepkut> parcs`: there are a few MVars and a thread and a bit of code, that is it I believe
19:03:49 <parcs`> what about when deserializing from a checkpoint or replaying the log?
19:04:25 <stepkut> deserializing a checkpoint currently has more overhead that it should. I am working on a fix for that
19:04:37 <stepkut> currently the entire checkpoint is read into RAM before it is decoded
19:05:16 <stepkut> that should not be required in most cases
19:05:47 <stepkut> getLazyByteString in cereal.. does return a lazy ByteString.. but it does not do it lazily
19:09:18 <zzing> What precisely does acid-state allow one to do?
19:11:22 <parcs`> stepkut: would feeding cereal incrementally with runGetPartial decrease the RAM usage?
19:11:37 <stepkut> zzing: you can keep your state value in RAM and modified it using normal Haskell code. But you also get the traditional ACID properties -- such as durability (if you pull the plug, acid-state can recover all the data)
19:12:00 <stepkut> parcs`: yes.. I think I need to use the runGetState thing and do chunks
19:12:38 <zzing> I think I can't imagine it too much because my application doesn't seem to apply. I am doing markdown -> html -> into a template and serve it
19:13:45 <stepkut> zzing: where does the markdown come from ?
19:14:05 <stepkut> files on the disk?
19:19:07 <zzing> yes
19:19:14 <zzing> Right now I am doing a caching module
19:19:23 <zzing> Using pandoc to convert
19:19:29 <zzing> saving the html on the disk as the cache
19:19:33 <zzing> comparing the modification times
19:19:46 <stepkut> so, you probably don't need acid-state at this time
19:22:33 <zzing> Would acid-state apply to something like this?
19:22:52 <stepkut> not for what you have so far
19:23:48 <stepkut> if you start allowing users to edit the contents of the files via the website.. then you will start running into issues
19:24:05 <zzing> Well now that you bring it up...
19:24:09 <zzing> That is one of the goals
19:24:25 <stepkut> also.. even though you are comparing time stamps, you have to be careful.. what happens if the convert starts writing out the .html and you lose power
19:24:29 <stepkut> you would have half a .html file
19:24:43 <stepkut> so, you have to make sure you write the output to a tmp file, and then move it into place when it is complete
19:25:07 <stepkut> if you want to have users, accounts, permissions, etc... then you start needed some sort of database for real
19:26:06 <zzing> LDAP testing for membership in a certain unix group will enable edit permissions
19:28:06 <zzing> The one thing I really want to do is keep the design of this thing as simple as possible and even allow for the markdown to be edited on disk directly.
19:29:56 <stepkut> yeah
19:35:45 <zzing> stepkut, as more develops on this towards adding editing capability, I shall mention this again and solutions may be found.
19:35:51 <stepkut> k
19:37:46 <zzing> What i like most about all three main haskell web frameworks is that they can pretty much be mixed and matched
19:37:56 <stepkut> yup
19:38:19 <zzing> Is there an easy way to support http and fastcgi from the same code base?
19:38:38 <stepkut> hmm
19:38:43 <stepkut> I have not used fastcgi myself
19:39:22 <stepkut> I assume that instead of doing, simpleHTTP nullConf routes, you would do something like, simpleCGI cgiConf routes, ?
19:39:45 <zzing> Just a mapping of parameters I guess
19:40:06 <zzing> Is there a module that can read cabal style config files? I think that would be ideal for my configuration
19:40:57 <stepkut> there are a number of packages on hackage for reading various config file formats
19:41:14 <stepkut> the once that Cabal uses comes from Cabal.. though I am not sure how flexible it is
19:41:23 <stepkut> it may only accept certain fields and stuff
19:41:32 <stepkut> not sure if there is a generic version
19:44:11 <stepkut> perhaps http://hackage.haskell.org/package/configurator
19:44:40 <stepkut> to be clear, that is not supposed to look like .cabal
19:44:44 <stepkut> but may be a useful alternative
19:49:06 <zzing> stepkut, thank you for that link that looks awesome
21:51:59 <donri> personally, i kind of like the name "happs" (but not "HAppS")