00:00:23 <McManiaC> :)
00:00:44 <McManiaC> I might get a job soon where I can work with haskell
00:00:44 <stepcut> happstack.com gets about 150 page requests / day.. so it's got a ways to go ;)
00:00:49 <stepcut> fun!
00:01:15 <McManiaC> no web developing tho :)
00:01:27 <stepcut> oh well :)
00:11:55 <fxr> req/sec is not important for now, since we don't have powerful web developing technologies yet
00:12:17 <fxr> we should work on that
00:13:24 <fxr> otherwise our language, our dsl is only a few lines shorter, that's all.
00:14:21 <stepcut> req/sec is good for marketing, but not really the most important thing at the moment
00:15:02 <fxr> agree
00:15:12 <stepcut> hyena is the solution to high req/sec in my opinion (on the web-server front)
00:15:40 <fxr> happstack-state is our technology
00:15:42 <stepcut> yeah
00:16:01 <stepcut> that is certainly the most interesting part I think
00:16:23 <fxr> I wonder if we can implement the second
00:16:36 <stepcut> the second ?
00:17:15 <fxr> yeah second of our technology, the first one is happstack-state which is already marketed as prevalence or in memory database.
00:18:18 <McManiaC> btw stepcut
00:18:23 <stepcut> right now, I think the #1 most important thing is the 'documentation'
00:18:54 <McManiaC> what did you mean with "theres a combinator library that does not use literal XML syntax"?
00:19:17 <stepcut> well #0 is that it has to actually work correctly, which is why I am fixing some issues with happstack-server ;)
00:20:17 <stepcut> McManiaC: http://code.haskell.org/HSP/hsx-xhtml/src/HSX/XHTML.hs
00:21:07 <stepcut> McManiaC: it's just a library that has functions like, anchor, p, div, etc, which you can use similar to BlazeHTML
00:21:15 <McManiaC> ah okay
00:23:45 <fxr> stepcut: yeah, but wether its working or broken, you'll need new technologies and that's why one day ppl will fix them
00:24:30 <stepcut> sure
00:25:16 <fxr> okay, so I'll introduce my idea
00:25:23 <stepcut> but if people can't figure out how to use what we already got ... that is trouble :)
00:25:45 <stepcut> ACTION listens
00:26:47 <fxr> they can figure out for sure, there are just url routing and handlers and a few http aux functions.
00:27:33 <stepcut> sure, but then people start looking an UnWebT (which they shouldn't be) and their eyes glaze over :)
00:27:49 <stepcut> the key is that people need to *believe* that it will be easy to understand before they will actually try..
00:28:54 <stepcut> anyway, what is your idea ?
00:29:57 <fxr> really, snap has almost no documentation, you don't know what a Snap Monad is, and all it can do is to give you a simple hello world.
00:30:31 <stepcut> fxr: it'll be easier to have better documentation then ;)
00:30:36 <fxr> you just need to know what an Alternative instance means to take advantage of so called Monad
00:31:12 <fxr> stepcut: we have documentation alreay, don't we?
00:31:21 <stepcut> fxr: some
00:31:56 <stepcut> fxr: but we could use more
00:32:30 <stepcut> there is a lot of stuff that is not obvious
00:32:33 <McManiaC> imo the problem is not just happstack
00:32:48 <stepcut> for example, do you know how to implement support for HEAD in your happstack application ?
00:33:09 <McManiaC> it lacks some more general documentation/tipps on how to develop a website with happstack+hsp+...
00:33:28 <fxr> stepcut: it shouldn't be my job, that's the simpleHTTP
00:33:59 <stepcut> fxr: simpleHTTP can do it, but only if you do it right
00:35:40 <stepcut> McManiaC: yeah, there are multiple levels of documentation. API/function level haddock stuff, higher-level API documentation, and then big picture documentation/design thoughts/recomended practices
00:35:44 <fxr> stepcut: sure, and I don't think I'll need a HEAD to choose happstack for my impl.
00:35:54 <McManiaC> jup
00:37:15 <stepcut> fxr: well, when I talk to django/joomla/etc, developers who also use Haskell, the #1 reason they say they haven't looked at using happstack is because they are spoiled from the django docs
00:38:07 <fxr> stepcut: and you believed?
00:38:31 <stepcut> fxr: maybe
00:38:43 <fxr> so what is your opinion?
00:39:39 <stepcut> fxr: My opinion is that we need to get more people using happstack, so that there will be a more people working on making it better
00:40:04 <fxr> great, so you need advertisement
00:40:05 <stepcut> fxr: I am trying to figure out what are the current barries to adoption.. and I think it is multifold
00:40:51 <stepcut> fxr: indeed. The implementation of that is non-trivial :)
00:41:38 <fxr> okay, let's read what is advertisement.
00:44:45 <stepcut> the purpose of 'advertisement' is to convince qualified prospects that investing their time and energy and risk in learning and using happstack is better than making that investment somewhere else, or not at all
00:46:16 <stepcut> so, we have to address issues like, why should they care? how will they benefit? why should they believe us?
00:46:46 <stepcut> we need to build trust
00:50:56 <fxr> don't build an antitrust, that's enough I guess
00:51:16 <stepcut> no, trust is much better
00:51:45 <fxr> ok
00:51:53 <stepcut> but, we need to back up even more perhaps.. the easiet way to sell something is to find a bunch of people who are looking for something, and then sell that thing to them..
00:52:34 <stepcut> so, the question is, are people looking for a Haskell framework? And if so, what specifically are they looking for ?
00:53:11 <stepcut> for example, if people don't care about serving more than 1000 req/sec, then spending time on being faster would be a poor use of resources..
00:53:26 <fxr> http://gist.github.com/260052 take a second look at this
00:53:58 <stepcut> fxr: yeah, that is cool
01:02:47 <stepcut> I want a BSD licensed markdown parser :-/
01:04:58 <fxr> stepcut: did you asked john about the change?
01:05:55 <stepcut> the change ?
01:06:24 <fxr> he may prefere to change the pandoc license.
01:07:18 <stepcut> fxr: doubt it. Not sure if he could anyway since it has multiple contributors.. they would all have to agree
01:10:11 <fxr> maybe they too prefere to
01:11:44 <stepcut> http://code.google.com/p/pandoc/issues/detail?id=175
01:18:14 <fxr> understood
01:49:22 <cheater99> stepcut: the haskell docs suck ass
01:49:37 <cheater99> stepcut: that's not limited to happstack
01:50:01 <stepcut> cheater99: yeah, I can't fix all of haskell. But I can fix happstack :)
01:50:21 <cheater99> maybe you can make a system that can be used for the rest
01:50:26 <cheater99> of haskell
01:50:54 <stepcut> it's not the system that is the problem. It's the people (not) using the system
01:50:56 <cheater99> reading the php manual back to back over the weekend has you up and developing. it's so basic even idiots can easily finish it (and they do)
01:51:40 <cheater99> and it contains lots of code ready to copy and paste
01:51:42 <cheater99> the python manual is extremely easy to use too, nice layout, nice structure, lots of hyperlinks
01:51:53 <cheater99> and the inline help in the python interpreter is terrific
01:51:57 <aavogt> there's a difference between a reference and something to teach you
01:52:08 <stepcut> cheater99: have you seen the new happstack crash course ?
01:52:25 <cheater99> i remember reading a happstack crash course
01:52:34 <stepcut> recently?
01:52:43 <cheater99> i dunno, what's the link?
01:52:45 <stepcut> in the last month?
01:53:00 <stepcut> cheater99: http://happstack.com/docs/crashcourse/index.html
01:53:03 <cheater99> it was some sort of 'self-executing course' or something like that
01:53:04 <stepcut> it's still under development
01:53:10 <cheater99> self-executing tutorial something like that
01:53:11 <stepcut> cheater99: that was probably tutorial.happstack.com
01:53:22 <cheater99> think so
01:54:00 <cheater99> stepcut: a tutorial is nice and very useful, but it doesn't actually have you developing things
01:54:11 <stepcut> the new crash course aims to be simple, have nice layout, and lots of small, downloadable demos
01:54:32 <stepcut> cheater99: what do you mean by that ?
01:54:49 <cheater99> i mean that a reference is needed
01:55:10 <cheater99> you need to look at how people learn new systems
01:55:17 <stepcut> the crash course, is really more of a reference. (Higher level than the API docs)
01:55:25 <stepcut> if you have suggestions on how to improve it though..
01:55:39 <stepcut> (aside from the fact that is is missing a significant amount of the content)
01:55:50 <cheater99> yeah i'm looking at it
01:56:02 <cheater99> but if i'm an ass with haskell i still won't be able to get into happstack without pain
01:56:27 <cheater99> so you can't attract the newbies (they won't be able to use a system without a large amount of good reference)
01:56:51 <stepcut> The crash course tries to get you started with a work app and basic understanding of what is doing really quickly. Then I try to cover all the pieces in more detail, and hopefully in a useful order. But at the same time, you should be able to skip around to the parts you care about right now and still be able to figure out what is going on
01:56:55 <cheater99> and then the advanced users are having other questions that aren't answered either from what i've seen
01:57:33 <cheater99> i was asking in #haskell several times about some studies on how haskell performs in high load situations and no one could bring up *one* example. this is very bad.
01:58:12 <cheater99> there are no apache benchmark results for happstack vs django vs wordpress vs drupal vs whatever
01:58:36 <cheater99> those are the biggest problems as i see them
01:59:13 <stepcut> on basic benchmarks, happstack is on par with apache. But we don't have a comprehensive test at the moment.
01:59:58 <cheater99> that's the problem, i can't go to the spiky hair manager and tell him 'a guy on irc told me happstack is sort of as fast as apache'
02:00:45 <stepcut> cheater99: yep.
02:00:48 <cheater99> and on the other hand, if it's only as fast as apache, then it's lagging behind the cutting edge of web architecture, so there's a problem too
02:01:09 <cheater99> apache is long seen as the obese, idiotic cousin
02:01:18 <stepcut> :)
02:01:27 <stepcut> happstack is much faster than RoR ;)
02:01:38 <aavogt> haskell is not extremely enterprise-ready
02:02:14 <cheater99> you need to define your selling points, see which ones are actually attractive vs other solutions out there, and figure out how to reach out to the different types of developers
02:02:27 <stepcut> cheater99: yep
02:02:31 <cheater99> you could go 'functional programming' but scala has you eaten
02:03:02 <cheater99> you could say 'nice sexy language' but there's a lot of stuff out there that does that, so you're not really interesting
02:03:26 <aavogt> you can't easily write haskell in scala
02:03:49 <cheater99> the only thing you could work with is haskell's supposed scalability tbh
02:04:01 <cheater99> and ease of architecture scaling
02:04:09 <cheater99> most languages have serious problems with that
02:04:26 <cheater99> mysql can only really have a few masters and then it dies
02:04:37 <cheater99> anything using it as a backend (i.e. most things) has huge problems
02:05:33 <cheater99> make happstack as easy to scale as setting up a new node in rackspace cloud or amazon's cloud services and you've got loads of fans
02:06:21 <cheater99> set up a new cloud node, clone happstack to it, it'll sync the persistence db on its own, done. if it starts looking like that you've got something many people don't
02:06:37 <stepcut> cheater99: automatic scaling via EC2 is planned. But people want documentation too :-/
02:07:00 <cheater99> should the same person be working on both?
02:07:11 <stepcut> cheater99: no. Need more developers :)
02:07:20 <cheater99> most such projects have a doc team
02:07:26 <cheater99> show me happstack's docs
02:07:42 <stepcut> http://happstack.com/docs
02:07:58 <stepcut> the classic tutorial is going to be deprecated
02:08:10 <cheater99> what about the disk drive persistence layer backup?
02:08:21 <stepcut> the API reference, the crash course, and the guestbook demo will remain
02:09:01 <stepcut> cheater99: ?
02:09:21 <cheater99> last time i was asking, i was told that the object store resides in ram
02:09:32 <stepcut> yes
02:09:39 <cheater99> and currently there's no way to have it back up to hard disk
02:09:43 <cheater99> has this changed?
02:09:52 <stepcut> that is wrong, that is never been the case
02:10:08 <cheater99> ok
02:10:11 <cheater99> someone lied to me
02:10:19 <stepcut> the events are automatically logged .. to disk, to S3, or to whatever you provide
02:10:26 <cheater99> do you know anything about python zope?
02:10:29 <stepcut> nope
02:10:42 <cheater99> it's got one of the oldest and most established object db's
02:10:58 <cheater99> a classical situation of not wanting to do sql
02:11:00 <cheater99> works well
02:13:07 <stepcut> objects make me sad
02:13:14 <cheater99> it's better than sql
02:13:18 <stepcut> :)
02:13:18 <cheater99> stepcut: is there a roadmap for happstack?
02:13:54 <stepcut> the short term roadmap is here: http://code.google.com/p/happstack/wiki/RoadMap
02:15:38 <cheater99> try exposing the work you need done right on the front page
02:16:14 <cheater99> show some interesting points in the roadmap that you'd like to reach
02:16:49 <stepcut> cheater99: I'll see what I can do. I am going to start posting on the new happstack blog about some of those things as well, http://happstack.blogspot.com/
02:17:11 <cheater99> yeah, but the blog isn't something the typical visitor even knows about
02:17:26 <cheater99> i want to find out about happstack so i go to happstack.com
02:17:39 <stepcut> sure, the blog will be featured on the site as well, once there is something to feature
02:17:58 <cheater99> that's too far away
02:19:06 <stepcut> certainly the front page is important.. figuring out what is best to put on there is trickier.. if someone doesn't even know what happstack is, do they care about what work needs to be done ?
02:19:10 <cheater99> my suggestion - make a block called Contribute, right above 'quick links', and have the names of the top 4 topics of interest, the fifth link is 'more' and takes you to a synopsis of what needs to be done
02:19:25 <cheater99> getting developers is your #1 priority right now
02:19:31 <stepcut> cheater99: right
02:19:36 <stepcut> cheater99: that I agree with
02:19:50 <cheater99> Contribute is more important than Quick Links
02:19:54 <cheater99> (for you)
02:20:04 <cheater99> they'll both be above the fold
02:20:17 <stepcut> cheater99: as long as they are both above the fold that is good
02:20:20 <stepcut> one moment
02:24:56 <cheater99> also you're completely ignoring windows in your installation instructions (misnamed Download)
02:25:27 <cheater99> people on windows aren't going to be geniuses, but there are 50 for everyone who uses linux as a desktop
02:25:41 <cheater99> they'll be chipping away on your rock
02:25:42 <stepcut> http://www.happstack.com:5678/index.html
02:25:44 <stepcut> something like that ?
02:26:00 <cheater99> yeah
02:26:06 <cheater99> but you totally need to make it all more sexy
02:26:11 <stepcut> You think it should be 'Install' instead of 'Download' ?
02:26:27 <cheater99> i think it should be Get
02:26:55 <cheater99> "Help use with these most important tasks..." sounds like a beggar on a train station
02:27:02 <cheater99> you need something like..
02:27:12 <cheater99> "Cool stuff you can help with:"
02:27:22 <cheater99> and then the topics there are sort of scary too
02:27:26 <stepcut> if you go to 'ruby on rails' 'django' and others, they seem to name it 'download'...
02:27:55 <cheater99> doesn't mean they're right
02:28:08 <cheater99> the topics below 'contribute' are a bit scary
02:28:17 <cheater99> don't make them single tickets
02:28:17 <stepcut> contributing is scary :)
02:28:34 <cheater99> or maybe do
02:28:34 <cheater99> hm
02:29:07 <cheater99> the problem is that i look at 'Update to HaXml 1.20' and i don't know what it is
02:29:12 <stepcut> well, I think people are going to look for a link that says 'Download' because that is what they are used to for tons of other sites
02:29:14 <cheater99> is that a markup?
02:29:29 <stepcut> it is an XML library that we depend on
02:29:38 <cheater99> it would be nice of those topics were somehow identified, as far as what general purpose they serve
02:30:08 <stepcut> with out having to click on anything ?
02:30:10 <cheater99> like, (database), (performance), (doc)
02:30:24 <cheater99> so one of those parentheses and then the name
02:31:27 <cheater99> you need to make the whole text on the front page more sexy
02:31:43 <cheater99> instead of 'Self-contained' make it 'Easy to use'
02:31:46 <cheater99> etc
02:31:57 <stepcut> easy to use doesn't mean anything anymore
02:32:09 <cheater99> that's why you plaster it
02:32:12 <stepcut> but, the copy does need to be improved
02:32:18 <cheater99> it needs to be understood by anyone
02:32:18 <stepcut> plaster it ?
02:32:27 <cheater99> i can appreciate what self-contained means and does
02:32:38 <cheater99> most people visiting the page to check out happstack possibly won't
02:32:38 <stepcut> right
02:32:48 <cheater99> no people who are decisive in a company will
02:32:54 <cheater99> instead of 'Distributed Persistent State' you're really trying to talk about the ease of scalability
02:33:05 <cheater99> a typical spiky hair manager knows what it means that stuff scales
02:33:15 <stepcut> well, nobody is going to put 'hard to use' on their web framework, so saying 'easy to use' seems pointless. Everyone says theirs is easy to use :)
02:33:17 <cheater99> persistent state means nothing to them
02:33:26 <cheater99> no
02:33:49 <cheater99> i would argue it, but i've gotta go to sleep soon
02:34:16 <cheater99> Flexible Templating Options <<< good title, not enough text
02:34:32 <cheater99> Type-Safety < nobody cares. take it off!
02:34:42 <cheater99> :)
02:34:54 <stepcut> I agree that the copy needs to be improved, but I don't think that spikey haired managers are even looking at the page. So, the question is what are people who are looking at the page caring about
02:35:22 <aavogt> type safety is important
02:35:31 <cheater99> they are
02:35:34 <cheater99> you'd be surprised
02:35:50 <cheater99> tech scouting is a cto's most important line of survival
02:35:52 <aavogt> if you're using haskell, you're already sold on how useful they are
02:36:06 <cheater99> what they read today they will come back to in 10 years
02:36:29 <cheater99> and if you don't use language that they can understand now, they won't be able to remember you in those 10 years
02:36:31 <cheater99> look at drupal
02:36:34 <cheater99> it's fucking shit
02:36:38 <cheater99> but it's insanely successful
02:36:53 <cheater99> i mean the code is amazingly bad
02:37:29 <stepcut> cheater99: I've looked at the drupal page a number of times, and I still can't figure out what it actually is
02:37:35 <cheater99> but out of all web technologies it's one of the most requested ones (in europe, at least) and definitely the one that has had the most growth
02:37:45 <cheater99> drupal is like wordpress on steroids
02:37:51 <cheater99> with lots of plugins
02:37:58 <stepcut> they should put that on the page, then I would know what it is :)
02:38:04 <cheater99> anyways look at what they're doing
02:38:07 <cheater99> their front page
02:38:18 <cheater99> Drupal.org is the official website of Drupal, an open source content management platform.
02:38:20 <cheater99> there it is
02:38:24 <cheater99> ^
02:38:25 <cheater99> right for you
02:38:25 <stepcut> "Drupal is a free software package that allows an individual, a community of users, or an enterprise to easily publish, manage and organize a wide variety of content on a website."
02:38:48 <cheater99> yes there you go
02:38:52 <cheater99> so that answers your question
02:38:58 <cheater99> now look at what they're doing
02:39:04 <stepcut> only if you know what a 'content management platform' is
02:39:12 <cheater99> most web developers do
02:39:26 <cheater99> so here's a breakdown of what they have on their page
02:39:31 <cheater99> 1. on the right, a small menu for the most used things
02:39:38 <cheater99> (under 'download')
02:39:47 <cheater99> (and the top tabs and search)
02:40:03 <cheater99> right in the center, a short, terse, and interesting description of what it is
02:40:15 <cheater99> that's 2
02:40:18 <cheater99> interested? you scroll down.
02:40:27 <cheater99> 3. the latest news
02:40:32 <stepcut> I updated the Contribute section a bit, http://www.happstack.com:5678/index.html
02:40:44 <cheater99> here it is drupal 6.17 released
02:40:57 <cheater99> 4. a case study for the spiky hair manager. VERY IMPORTANT
02:41:07 <cheater99> 5. on the right, a bar with 'contribute'
02:41:25 <stepcut> personally I find the drupal page horrible, but that doesn't mean there aren't some good ideas to steal from it anyway
02:41:28 <cheater99> next: a news item about community
02:41:38 <cheater99> their layout is perfect for gaining notoriety
02:41:42 <cheater99> you should analyze it
02:41:49 <cheater99> think about what a spiky hair manager does
02:41:56 <cheater99> say he sees drupal mentioned on twitter a lot
02:42:05 <cheater99> he goes to google, types in drupal, ends up at drupal.org
02:42:19 <cheater99> he sees 'ok, so it's a content management platform. ok nice, let's see what it does'
02:42:25 <cheater99> scroll down a bit
02:42:32 <cheater99> A-HA! nice whitepaper to download
02:42:36 <cheater99> managers love whitepapers
02:42:40 <cheater99> even better if it has a ppt with it
02:42:55 <stepcut> feel free to hack on happstack.com, http://patch-tag.com/r/stepcut/happstackDotCom
02:42:56 <cheater99> if you have a good whitepaper, even if you lie in it, you'll win the manager's heart.
02:43:42 <cheater99> that's the way it worked in the companies i worked at, and they were some big web design houses
02:43:52 <stepcut> yes
02:44:03 <cheater99> and think about it
02:44:21 <cheater99> what's on your page right now decides how it will be seen in 2-3 years by people
02:44:28 <cheater99> it's very accumulative
02:44:31 <cheater99> very delayed
02:44:51 <stepcut> There are two things I want to fix in happstack-server right now before I can feel really good about promoting it. Then I plan to focus more on getting more developers
02:45:00 <cheater99> what two things?
02:45:07 <stepcut> certainly the website is key, because that is probably the first thing they will see
02:45:07 <cheater99> put those two things under 'contribute'
02:45:19 <cheater99> (and only those two things)
02:45:24 <cheater99> (and 'more')
02:45:41 <cheater99> it's probable nobody will bother with it
02:45:50 <cheater99> but they'll start noticing this area and will start coming back
02:46:01 <stepcut> 1. the timeout handling was stupid before. Now it is mostly not stupid, except we need timeout support when using sendfile
02:46:04 <cheater99> and maybe one day there's something they get off on, and you'll get a contributor
02:46:20 <stepcut> 2. the way we handle request bodies is not acceptable. I hope to have a patch for that finished in a few days
02:46:46 <cheater99> either way remember that
02:46:51 <stepcut> right
02:46:54 <cheater99> your page should only give a shit about two different kinds of people
02:47:04 <cheater99> a. developers who use/enhance your product
02:47:15 <cheater99> b. people who give them jobs and decide what they work with
02:47:19 <stepcut> right
02:47:30 <cheater99> every single word needs to be understandable and respectable by both
02:47:37 <cheater99> you're a
02:47:38 <stepcut> right
02:47:45 <cheater99> you need a few people who are b
02:48:33 <cheater99> if they have any questions as to what something means on the front page, don't explain it to them, just remove it, or if you absolutely need the concept covered there explain it differently
02:48:57 <cheater99> and with that, i'm off to sleep ;-) ttyl
02:48:59 <stepcut> right. In the long term the most valuable thing I can do is focus my time on getting more of the 'a' and 'b' people.
02:49:22 <cheater99> oh
02:49:39 <cheater99> and i really like the contribute thing
02:49:46 <stepcut> as a coder, I can only right a limited amount of code. But if I can get 10 people to code.. that is much more productive
02:49:56 <cheater99> zactly
02:50:11 <cheater99> oh and get a facebook 'like' button
02:50:17 <stepcut> yeah
02:50:27 <cheater99> and quickly start building a community
02:50:47 <cheater99> like a list of people who want to be listed as interested in jobs that have to do with happstack
02:50:59 <stepcut> yeah
02:51:00 <cheater99> 'i would like to be contacted about jobs with happstack'
02:51:10 <stepcut> ooo. excellent!
02:51:18 <cheater99> because what use is technology if you can't get to the developers?
02:51:24 <stepcut> right.
02:51:34 <cheater99> so have a link for even a tiny 'job market' section
02:51:41 <stepcut> yeah
02:51:44 <stepcut> definitely
02:51:55 <cheater99> start off with just people being able to sign up their readiness to work with it
02:52:00 <stepcut> yeah
02:52:03 <cheater99> it's a 5 minute job
02:52:20 <stepcut> under the community section ?
02:52:26 <cheater99> no it needs to be separate
02:52:34 <cheater99> community just means forums+trolls+desu
02:52:35 <stepcut> it's own top-level heading ?
02:52:39 <cheater99> yes
02:52:43 <stepcut> ok
02:52:46 <cheater99> Jobs/Consultants
02:52:48 <stepcut> right
02:52:49 <cheater99> or
02:52:51 <cheater99> Jobs/Devs
02:52:58 <stepcut> might have to redo the navigation a bit
02:53:19 <stepcut> I need to add a few more major navigation sections I think
02:53:39 <cheater99> ok, i really have to go now
02:53:43 <stepcut> ok
02:53:45 <cheater99> enjoy your time ;-)
02:53:48 <stepcut> come back soon!
02:53:54 <cheater99> i'm here
02:54:03 <cheater99> and if i'm not that's because i forgot
02:54:16 <cheater99> i can usually be found in places like #python-offtopic or #esoteric
02:54:21 <stepcut> ok
02:54:27 <cheater99> so if you don't see me, msg me :)
02:54:37 <stepcut> as long as you are somewhere on freenode
02:55:12 <cheater99> btw, i think you mean 'freedom from database denormalization' on the front page
02:55:14 <cheater99> ttyl :)
02:55:40 <stepcut> oops
02:55:50 <stepcut> I find a major typo in the first line the other day :)
02:56:06 <stepcut> I redid the whole site in one day, and it needs more than one day of work :)
03:40:11 <stepcut> ok, updated the live site. More changes tomorrow.
15:43:25 <nikosB> hi
15:44:09 <nikosB> so I m trying to learn happstack (and haskell)
15:44:16 <nikosB> I have a question
15:45:02 <nikosB> can I stop a simpleHTTP server in ghci make changes in the source file end reload in some way?
16:10:18 <siracusa> nikosB: I think you can't, but have to kill the process and start again. At least for Windows I didn't find a solution to this problem.
16:20:24 <nikosB> :( thx
16:43:28 <siracusa> stepcut: I havn't looked at the code, would it be too difficult to add an `ungracefull' server shutdown function for debugging purposes?
17:06:35 <bonobo_> hi
17:07:02 <bonobo_> does anybody have any experience with hunit/qc checks of business logic inside happstack?
17:07:34 <bonobo_> I mean checking if after a couple of update's, a query returns what it should?
17:07:50 <bonobo_> and/or ServerPartT has a Response?
17:29:01 <bonobo_> why evalHSP needs IO?
17:42:39 <fxr> bonobo_: because of name generation (gensym) for the variables ?
17:43:53 <fxr> ex: getIncNumber = getEnv >>= doIO . incNumber . getNG
17:44:19 <bonobo_> couldn't it use State inside only?
17:44:30 <bonobo_> also what kind of names are needed there?
17:45:21 <fxr> bonobo_: sorry, no gensym.
17:46:46 <fxr> "Since HSP wraps the IO monad, the result of running it will be an IO computation."
17:47:00 <bonobo_> yes, but why?
17:48:06 <fxr> bonobo_: so that you don't need to heavily use liftIO
17:48:56 <bonobo_> inside of HSP?
17:49:03 <fxr> yep
17:49:53 <bonobo_> well, I'm trying to confine IO as much as possible in my current app and I'm just surprised...
17:51:04 <fxr> http://hackage.haskell.org/packages/archive/hsp/latest/doc/html/src/HSP-Env.html take a look at HSPEnv which is needed for evalHSP
17:51:36 <fxr> it uses an IO ref to implement a number generator
17:52:09 <fxr> which is only for performance I guess
17:52:19 <bonobo_> interesting why does it need NumberGen at all
17:52:21 <bonobo_> ?
17:52:58 <fxr> http://hackage.haskell.org/packages/archive/hsp/latest/doc/html/src/HSP-HJScript.html see there newGlobVarName
17:53:16 <fxr> which is needed for variable name generation for javascript compilation
17:53:25 <fxr> ex: var_1 = 0;
17:54:06 <fxr> almost like a gensym in CommonLisp
17:54:49 <bonobo_> almost
17:55:03 <bonobo_> sad it imports whole IO just for this one purpose
17:55:50 <bonobo_> could be ST perhaps
17:57:27 <fxr> it will be dead slow
17:57:36 <bonobo_> why?
17:58:21 <bonobo_> IO = ST RealWorld, isn't it?
17:59:35 <fxr> okay, test it then, write both methods and benchmark with criterion
18:02:57 <bonobo_> http://haskell.org/ghc/docs/6.12.2/html/libraries/base-
18:04:03 <bonobo_> does "same representation" also mean "same performance"?
18:04:34 <fxr> I guess yes
21:56:22 <Entroacceptor> whoa, new website
21:57:09 <stepcut> Entroacceptor: it's been new for a while ;)
21:57:25 <Entroacceptor> yeah, but I haven't been in here for another while....
21:57:27 <Entroacceptor> looks good
21:57:58 <stepcut> thanks
21:58:04 <stepcut> the copy on the front page needs work though
22:04:48 <Entroacceptor> wait, you got two project leaders?
22:06:10 <stepcut> we do ?
22:06:34 <Entroacceptor> the wiki says so
22:06:42 <stepcut> :-/
22:06:49 <stepcut> the wiki contains some falsehoods
22:09:32 <stepcut> that page is... very out of date :)
22:09:43 <Entroacceptor> :)
22:09:48 <stepcut> though, I guess we have two project leaders, but we don't see much of Matthew these days :(
22:10:07 <Entroacceptor> what editor do you use, btw?
22:10:11 <stepcut> emacs
22:10:26 <stepcut> would you like to be added to the Project Members list ?
22:10:37 <Entroacceptor> goody, I want to give it a try. Can you enable haskell completion?
22:10:48 <Entroacceptor> no, I don't have much to contribute
22:10:58 <stepcut> some is better than none!
22:11:09 <stepcut> enable haskell completion ?
22:11:10 <Entroacceptor> where some = 'excitement'
22:11:50 <Entroacceptor> well, I tried hitting Alt-Tab after import and hoped to see a list of modules popping up
22:11:53 <Entroacceptor> code completion
22:12:08 <stepcut> you need double quotes,
        some = "excitement"
22:12:27 <Entroacceptor> see how much of a newbie I am? :)
22:12:50 <stepcut> Entroacceptor: Does that work for other Haskell projects ?
22:13:19 <Entroacceptor> I have no clu
22:13:20 <Entroacceptor> e
22:13:23 <Entroacceptor> first time I tried it
22:13:41 <stepcut> well you should take it up with the haskell-mode maintainer
22:15:02 <stepcut> there is a new happstack tutorial, btw. But it does not cover much yeat
22:15:04 <stepcut> yet
22:15:21 <stepcut> you should add support for BlazeHTML to happstack.. it should only be a few lines :)
22:17:06 <Entroacceptor> I don't believe in html generation
22:17:54 <stepcut> oh ? JSON all the way ?
22:18:00 <Entroacceptor> what?
22:18:08 <stepcut> what do you do instead of html generation ?
22:18:22 <Entroacceptor> templates
22:18:37 <stepcut> using what ?
22:19:08 <Entroacceptor> still haven't done it in Haskell, but maybe hStringTemplate
22:19:51 <fxr> blazehtml is a waste of time
22:20:21 <fxr> we're using javascript html combinators
22:20:48 <stepcut> fxr: go on
22:20:50 <fxr> which are written in haskell and compiling to js
22:21:16 <stepcut> fxr: what do search engines see ?
22:21:36 <fxr> so each blaze api method has a corresponding combinator in haskell which produces html generating javascript code.
22:21:45 <fxr> stepcut: ah that one is really easy
22:22:08 <fxr> stepcut: I looked at search engines and found that they have search engine services
22:22:18 <fxr> which you can feed information in different formats
22:22:45 <stepcut> interesting
22:22:49 <fxr> so for example a small search engine which don't have an api
22:23:28 <fxr> I feed my html pages as they're already on the browser, created and accessible with js api
22:23:34 <Entroacceptor> (ok, I think that javascript is even more evil than server-side html generation)
22:23:43 <fxr> Entroacceptor: that's for sure
22:23:58 <fxr> oh shit
22:24:09 <fxr> there is a thunderstorm here
22:35:58 <Entroacceptor> oh
22:36:06 <Entroacceptor> it fails to build, again
22:36:30 <Entroacceptor> rm -rf .cabal/packages...
22:37:27 <dcoutts> Entroacceptor: that might not do what you expect, that only deletes downloaded tarballs, not installed packages
22:37:46 <dcoutts> also, if you deleted installed packages, that does not unregister them
22:37:56 <dcoutts> registered packages with all files deleted are a bit of a pain
22:38:09 <dcoutts> you should unregister them or it's a complete mess
22:38:27 <Entroacceptor> rm -rf .ghc, too
22:39:18 <Entroacceptor> I'm a bit tired and high on green tea....
22:39:38 <Entroacceptor> which means I should think before I delete cabal
22:40:12 <Entroacceptor> d'oh
22:59:44 <Entroacceptor> *sigh*, this worked, somehow
23:04:48 <Entroacceptor> found a broken link in the docs
23:05:20 <Entroacceptor> FilePath links to system-io.html, which isn't there, obviously
23:09:20 <Entroacceptor> (on  http://happstack.com/docs/0.5.0/happstack-server/Happstack-Server-HTTP-FileServe.html#4)
23:12:18 <cheater99> good afternoon
23:17:31 <stepcut> cheater99: hello
23:19:33 <fxr> afternoon?
23:19:39 <fxr> it's 02:19 here
23:19:41 <cheater99> possibly
23:19:50 <cheater99> you're in russia?
23:19:54 <fxr> turkey
23:42:09 <cheater99> stepcut: i've just had a chat with someone showing them the happstack site
23:42:16 <stepcut> cheater99: sweet!
23:42:25 <cheater99> their biggest issue is that it doesn't even mention security
23:42:31 <cheater99> and that's pretty bad
23:42:38 <stepcut> :)
23:42:39 <cheater99> also some doc links are broken
23:42:45 <stepcut> oh ?
23:43:28 <stepcut> the old tutorial is temporarily offline due to server issues
23:43:45 <stepcut> I wonder what we should say about security
23:43:52 <cheater99> 'on the docs page the source code link for the guestbook demo and the happstack tutorial are both broken'
23:44:07 <stepcut> yeah, those are both links to the same server
23:44:38 <stepcut> there seems to be an issue with his GHC installation
23:45:21 <stepcut> should be fix today or tomorrow I hope :-/
23:47:02 <cheater99> he's a (very advanced) zope user btw
23:47:18 <cheater99> zope is sort of like happstack for python with a decade of experience
23:47:24 <cheater99> <kosh> well for security I would want full access control security <kosh> zope also has a feature where no operation can happen that the owner of the document and the current user can do <kosh> so that if you are manager and someone has code in an object owned by a lower security setting that says to delete all the stuff on the site that won't work either
23:48:01 <stepcut> yeah, happstack is lower-level than htat
23:48:34 <cheater99> <kosh> my issue is that good security is hard and people screw it up in a major way
23:49:01 <cheater99> stepcut: but i see you're trying to do web an markdown and stuff..
23:49:05 <cheater99> so i'm a bit confused
23:49:39 <stepcut> I want markdown for a specific app that is  built on top of happstack..
23:51:32 <cheater99> yeah ok
23:52:40 <stepcut> eventually there will be high-level layers, but not right now
23:54:31 <cheater99> i'm having a chat with someone else right now who co-devs python 3 iirc
23:54:50 <cheater99> and he says he's scared because happstack is all-in-one
23:55:04 <cheater99> and similarly i don't understand what happstack does exactly if not everything
23:56:04 <cheater99> i think it would be nice to have a few typical apps, say a blog, a physical simulation app, and something else of your choice
23:56:27 <cheater99> and show block graphs of the separate layers and show what happstack does, and if happstack doesn't do something, then what haskell lib could
23:56:40 <cheater99> and hopefully show the percentages of 'completeness' for each block
23:57:48 <cheater99> like say in a blog it would be: markdown, request handling, user login and management, access and security, persistence
23:57:58 <stepcut> right
23:58:13 <cheater99> and you know, those typical rectangles with arrows connecting things that talk to eachother
23:58:57 <cheater99> and, yet another request for performance benchmarks
23:59:19 <cheater99> so i'd say, set up a page like happstack.com in drupal and test ab on both and see what happens
23:59:33 <cheater99> i could help with a bit of drupal stuff