--- Log opened Mon Feb 23 00:00:23 2009
00:54 < Axman6> hmm, happs sure isn't simple is it
01:26 < mae> heh
01:26 < mae> trying to make it more simple
01:26 < mae> alot of it is haskell-fu
01:26 < mae> half the battle.
01:30 < Axman6> yeah, i'm giving  up on this for now >_<
01:30 < Axman6> trying to figure out what things do feels like trying through neck deep mud
02:40 < mae> Axman6: have you tried the skeleton app yet?
02:55 < Axman6> nope, where is it?
02:58 < mae> have you built the prerelease?
02:59 < Axman6> nope :\
02:59 < mae> what platform are you on?
02:59 < Axman6> OS X
02:59 < mae> oh
02:59 < mae> ok
02:59 < mae> well
02:59 < mae> you have cabal install going?
02:59 < mae> and darcs 2?
02:59 < Axman6> yep
02:59 < Axman6> and yep
02:59 < mae> ok
03:00 < mae> darcs get --lazy http://patch-tag.com/publicrepos/happstack
03:00 < mae> cd happstack
03:00 < mae> sh bin/build-install-all.sh
03:00 < mae> (will install all 0.1.9 packages, soon to be 0.2)
03:00 < Axman6> ok, cool
03:00 < mae> do you have ~/.cabal/bin in your path?
03:01 < Axman6> yep
03:01 < mae> ok so
03:01 < mae> after that you just do
03:01  * Axman6 already has a checkout of happstack too apparently
03:01 < mae> happstack new project <dir>
03:01 < mae> and voila
03:01 < mae> you will find a project in dir
03:01 < Axman6> oo, excelent :)
03:01 < mae> cd <dir>
03:01 < mae> then sh bin/run.sh to get the test app started
03:02 < mae> open up http://localhost:8000 in your web browser
03:02 < mae> you can modify the code to your liking, I think it is pretty straightforward
03:02 < mae> if you look at AppControl.hs
03:02 < mae> let me know how that works out
03:02 < mae> i haven't tested the tool in mac os x
03:02 < mae> only windows / linux
03:03 < Axman6> ok, well i'll see what i can do :)
03:03 < mae> k
03:03 < mae> be back in 10 minutes
03:03 < mae> to see how it went :)
03:03 < Axman6> trying to do a darcs pull right now
03:03 < Axman6> taking a long time...
03:03 < mae> k bbl in 10 mins
03:03 < Axman6> ok
03:11 < mae> so where we at :)
03:12 < Axman6> just ran happstack new project webapp :)
03:12 < Axman6> wow, awesomeness :D
03:12 < Axman6> hooray
03:14 < Axman6> very nice mae
03:14  * Axman6 pokes around the source
03:18 < mae> so it worked without a hitch?
03:18 < Axman6> yep
03:19 < mae> the main hangups for "easy mode" are 1. you have to get ghc >= 6.8.3 installed 2. cabal install will need to be setup 3. ~/.cabal/bin has to be in the path
03:19 < mae> but after those 3 its easy peasy
03:19 < mae> once 0.2 is on hackage
03:19 < mae> they can just do 'cabal install happstack'
03:19 < mae> and it pulls down everything
03:19 < mae> (instead of what you did, pulling the darcs command, running those scripts)
03:20 < mae> Axman6: is that source a bit easier to follow? :)
03:20 < Axman6> one thing i think that should be changed about the source is making the names of things more generic. i mean, it seems like it'd take a lot of work to change this from a guestbook to say a blog, or anything else
03:20 < Axman6> mae: i'll have to read more of it. looks like there's a lot of boilerplate includes though
03:20 < mae> you mean imports?
03:21 < Axman6> uh yeah
03:21 < mae> yeah, one thing you'll find with haskell, its a bit unavoidable
03:21 < Axman6> yeah :\
03:22 < mae> in object oriented languages you have alot more ways to hide function namespaces
03:22 < mae> so it is more straightforward and more powerful doing a single import in say ruby
03:22 < mae> but there is also lots of smoky magic which you inevitably run into
03:22 < mae> at least in haskell you know what code your importing for the most part
03:22 < mae> it may seem daunting
03:23 < mae> but if you just take the time to understand what each part does that is imported
03:23 < mae> the knowledge is cumulative
03:23 < mae> but i totally agree
03:23 < mae> I actually tried to reduce the imports as much as possible
03:24 < mae> but it could use more pruning
03:24 < mae> happstack does *alot* of stuff, so can't strip it down too much more than it already is
03:25 < mae> but at the very least the guestbook app is split into modules which describe their function
03:25 < mae> the basic MVC paradigm
03:25 < mae> so you can focus on one part at a time
03:25 < Axman6> yeah
03:27 < mae> i'm glad it worked without a hitch on mac os x :)
03:29 < Axman6> most things seem to ;)
03:30 < Axman6> that's liftIO do?
03:30 < mae> heh
03:30 < mae> lets see
03:30 < mae> liftIO generalizes the IO monad into the Monad typeclass
03:30 < Axman6> o.O
03:31 < mae> liftIO is a function for the MonadIO transformer
03:31 < Axman6> ah, gotta go. might be back later, but i'm not sure.
03:31 < mae> yeah its a mindfuck isn't it?
03:31 < Axman6> yup :P
03:31 < mae> I've been doing this for a year now and its just starting to click
03:31 < mae> the human term is that
03:31 < mae> basically, if your not running in the IO monad
03:31 < mae> you have to use liftIO to use anything that runs _in_ the IO monad
03:32 < mae> things in IO include, stdin stdout, printing, logging, oh, and your haskell program's main function ALWAYS is in the IO monad
03:32 < mae> so at the basic level, your program is encapsulated in IO
03:32 < mae> thats just a taste, more later, going to bed
04:44 < Saizan> mae: we should consider moving to an odd/even devel/stable version scheme, it's a pain to have both installed otherwise
04:45 < Saizan> mae: e.g. i need to reinstall happstack-server-0.1, but if i just do cabal install happstack-server-0.1 it won't compile, since it'll use the 0.1.9 version of the other packages
04:46 < dcoutts> Saizan: oh, so happstack-server-0.1 build-depends on happstack-others ==0.1.* ?
04:47 < dcoutts> Saizan: and so dev versions at 0.1.9 are supposed to be compatible but really are not
04:47 < Saizan> yeah
04:47 < dcoutts> right
04:47 < dcoutts> then yes, go for odd even
04:47 < dcoutts> then your original deps would have been correct
04:47 < dcoutts> as the dev version would not be in 0.1.*
04:48 < Saizan> actually, we've released an happstack-server-0.1 that depends on happstack-others -any :\
04:48 < Saizan> however my point still stands :)
05:31 < dcoutts> Saizan: heh, yes, even more so.
07:13 < HugoDaniel> hi
07:13 < HugoDaniel> how is the documentation of happstack 0.1 going ?
07:13 < HugoDaniel> where can i read it ?
08:41 < dancor> HugoDaniel: i think latest is at http://tutorial.happstack.com/tutorial/home
08:43 < dancor> i don't know the status of haddock documentation, i guess whatever is in the repo
08:44 < dancor> darcs get --lazy http://patch-tag.com/publicrepos/happstack
08:44 < dancor> http://happstack.com/develop.html
08:55 < koeien> Saizan: yeah i agree with odd/even, it makes things a bit easier
12:24 < mae_work> re: odd/even, is the problem that 0.1.9 is considered part of 0.1 ?
12:25 < mae_work> because if this is the issue, dev branch could be for example, going forward 0.3
12:25 < mae_work> and then when we release it, we jump to 0.3.1
12:25 < mae_work> this way you can target 0.2.* or 0.3.*
12:25 < mae_work> would this work?
12:25 < HugoDaniel> isn't it a bit too confusing ?
12:26 < mae_work> HugoDaniel: what?
12:52 < lanaer> seems to me that it would be less confusing
13:34 < h_buildbot> Build for ghc-6.8.3 OK. Test suite ran. 14/77 test cases failed. Check http://buildbot.happstack.com/ for details.
13:42 < h_buildbot> Build for ghc-6.10.1 OK. Test suite ran. 15/77 test cases failed. Check http://buildbot.happstack.com/ for details.
13:51 < koeien> mae: i think that would work. not sure though
14:00 < stepcut> mae: we could follow the GHC version number scheme ?
18:19 < h_buildbot> Build for ghc-6.8.3 OK. Test suite ran. 14/77 test cases failed. Check http://buildbot.happstack.com/ for details.
18:26 < h_buildbot> Build for ghc-6.10.1 OK. Test suite ran. 15/77 test cases failed. Check http://buildbot.happstack.com/ for details.
19:13 < thetallgu1> Looking at happstutorial I see a reference to ``smartserver''.  Am I correct in thinking that's deprecated?
19:14 < thetallgu1> It seems like the happstack command and the template server is the current reference point, now.
19:15 < Saizan> are you sure that's not defined inside happstutorial?
19:16 < thetallgu1> no, not sure at all
19:16 < Zao> smartserver lives in HAppS.Server.Helpers
19:16 < thetallgu1> but I looked through the Main import list
19:16 < thetallgu1> Ah, I see, it was down the page
19:16 < thetallgu1> We try to keep our imports alphebetized
19:17 < thetallgu1> so I stopped scanning
19:17 < thetallgu1> In any case, it's not part of happstack, which is what I really wanted to make sure of.
20:37 < mae> hello!
20:44 < Saizan> hi
21:17 < mae> Saizan: did you see the patch i pushed?
21:56 < h_buildbot> Build for ghc-6.8.3 OK. Test suite ran. 14/77 test cases failed. Check http://buildbot.happstack.com/ for details.
22:07 < h_buildbot> Build for ghc-6.10.1 OK. Test suite ran. 14/77 test cases failed. Check http://buildbot.happstack.com/ for details.
22:13  * stepcut understands even more about happstack state works now
22:16 < mae> cool :)
22:16 < mae> you should talk with stepcut
22:16 < mae> pick his brain about sharding a bit
22:16 < mae> so we can hit the ground running
22:16 < mae> ack
22:16 < mae> s/stepcut/Lemmih/
22:16  * stepcut talks with himself
22:16 < mae> haha
22:17 < Saizan> you're exceptionally talented at confusing nicks :)
22:17  * stepcut remebers about getRandom
22:19 < Saizan> btw, isn't extremely unsafe to use Ev's getRandom with multimaster/sharding?
22:19 < stepcut> Saizan: I'll have to think more. But, maybe not.
22:19 < mae> my brain is scrambled
22:21 < Saizan> i thought you were free to rerun events because they are deterministic
22:21 < stepcut> Saizan: yes
22:22 < stepcut> Saizan:  the StdGen for getRandom is stored in the TxContext, since it is only pseudo-random numbers, it will generate the same random numbers when given the same StdGen
22:22 < Saizan> ah, so the StdGen is stored and passed around as well?
22:22 < stepcut> Saizan: yep
22:23 < Saizan> 'k, then
22:23 < stepcut> data TxContext = TxContext { txId :: TxId, txRand :: Word64, txTime :: EpochMilli, txStdGen :: StdGen }  deriving (Read,Show,Typeable)
22:25 < stepcut> not really sure what txRand is for. Nothing seems to use it
22:26 < stepcut> that is the sort of thing I would like to ask Lemmih about
22:28 < Saizan> write them down, then we can take LHC has hostage until he answers
22:28 < stepcut> so, I am (still) thinking about adding unsafeRename as migration method (in the same vein as 'extension')
22:29 < stepcut> haha
22:30 < stepcut> writing them down is a good idea, I'll do that
22:30 < stepcut> I am also going to attempt to write a blog post on how it actually works on the inside
22:31 < Saizan> nice, btw, how is the code? i remeber it undocumented and not really organized
22:31 < stepcut> Saizan: it's still undocumented, I am going to start adding some developer comments as well
22:32 < stepcut> Saizan: I'll probably haddock it up. There is not much that is useful for end users to use aside from query/update/mkMethods, but it would be useful for devs
22:33 < Saizan> no doubt.
22:35 < stepcut> I wonder if we should bring back the S3 saver eventually
22:35 < Saizan> does it use the S3 module in -server?
22:37 < stepcut> Saizan: I don't think it exists anymore
22:37 < stepcut> Saizan: and, I think there are better S3 modules on hackage now?
22:37 < stepcut> Saizan: it would be nice to use a 3rd party S3 module if possible
22:38 < mae> S3 I still like
22:38 < stepcut> oh, there is still happstack/happstack-state/src/Happstack/State/Saver/Impl/S3.hs
22:39 < stepcut> it tries to import Happstack.Protocols.S3
22:40 < stepcut> it could be nice to run happstack on disk-less machines
23:17 < mae> indeed
--- Log closed Tue Feb 24 00:00:23 2009