01:05:44 <donri> stepcut: is it just haddock or does happstack-yui fail to build normally as well?
01:06:00 <stepcut> dunno, I didn't try
01:06:44 <donri> maybe we can make the bundling conditional with cpp and sidestep it for haddock?
01:10:29 <stepcut> tried to build it and it killed my ssh session :-/
01:10:42 <donri> fun!
01:11:49 <stepcut> Loading package file-embed- ... linking ... done.
01:11:49 <stepcut> io-xdr/io.swf: getFileStatus: does not exist (No such file or directory)
01:13:02 <donri> $PWD?
01:13:36 <donri> and why does it getFileStatus that
01:13:46 <stepcut> kill my connection again too
01:13:52 <donri> ^_^
01:13:54 <stepcut> this library is too awesome for my computer
01:13:58 <donri> xD
01:20:35 <donri> stepcut: how do you run haddock?
01:20:57 <donri> cabal haddock --haddock-option="--optghc=-DHADDOCK"  # i have this working for sidestepping the bundling now
01:21:15 <stepcut> I run it indirectly via scoutess
01:21:44 <donri> so what does scoutess do :p
01:21:55 <stepcut> beats me
01:22:03 <stepcut> i just wrote it
01:22:15 <donri> :)
01:22:29 <stepcut> if I could remember stuff like that I wouldn't need a type-safe language :p
01:24:02 <donri> man it's difficult to debug a problem when you can't reproduce it yourself or even on the CI
01:24:13 <stepcut> :)
01:24:51 <donri> maybe i should add a flag that controls the use of file-embed and fallback on cabal data-files...
01:25:06 <donri> or rather, have the latter be the default
01:26:11 <donri> do cabal flags propagate? like, are they passed to dependencies when you cabal-install -fsomething
01:26:42 <stepcut> dunno
01:33:48 <donri> because you're not supposed to be doing "cabal install" separately for dependencies because that gives cabal less information about version requirements... but you have to if you want to set a flag, it seems
01:33:58 <donri> i should look at how cabal-meta does it i guess
06:23:47 <jaspervdj> stepcut: Can I work with you on the d-f vs. yesodform vs. reform article?
06:25:14 <jaspervdj> congrats on the library btw, I think I like it
14:29:32 <stepcut> jaspervdj: sure, I have to release some other code before I can work on the article though
14:29:50 <stepcut> jaspervdj: i have also an proof-of-concept arrow-based form library to through into the mix
14:36:11 <stepcut> jaspervdj: http://hpaste.org/68553, example forms start at line 139
14:38:06 <stepcut> jaspervdj: the arrow version allows you to label the values,  which makes it easier to put your input elements in whatever over you want, and then stick them in a record in the returnA line.. or run them through validators
14:48:22 <jaspervdj> stepcut: I'm not sure about the arrow approach
14:48:53 <jaspervdj> arrow is about the same as applicative from a formal point of view I guess, but I think applicative notation is much more concise
14:50:28 <jaspervdj> stepcut: I'd like to perhaps refactor the reform codebase one day
14:51:22 <stepcut> well, I probably could have written testForm version more concisely.. the applicative approach gets less concise if you want to display the fields in on order, but shove them into a record that has them in a different order
14:51:30 <jaspervdj> d-f-0.2 (and reform) use deep embedding whereas d-f-0.3 uses shallow embedding with a GADT
14:51:34 <stepcut> refactor reform in what way?
14:52:00 <jaspervdj> this isn't at all related to view/validation separation, and it gives you a *much* cleaner codebase
14:52:19 <jaspervdj> plus you can more easily add combinators like
14:52:31 <stepcut> where does this GADT appear?
14:52:31 <jaspervdj> monadic :: m (Form m v a) -> Form m v a
14:53:13 <jaspervdj> https://github.com/jaspervdj/digestive-functors/blob/master/digestive-functors/src/Text/Digestive/Form/Internal.hs#L51
14:53:54 <stepcut> ah
14:53:56 <jaspervdj> stepcut: right, the order is pretty annoying using applicative
14:54:21 <jaspervdj> I'm not sure how yesod allows you to reorder fields (if at all)?
14:54:22 <stepcut> yeah, the experimental arrow version was just to see if it could make the order problem easier
14:54:49 <stepcut> you can always use fmap I think
14:55:03 <jaspervdj> right
14:55:49 <stepcut> in my experience, I generally need an intermediate data-type anyway (usually a tuple) because the form  is only updating some of the fields of a record, not all of them
14:55:57 <stepcut> so I need to use transform anyway
14:56:04 <stepcut> hence the order problem is not that big of an issue
14:57:24 <stepcut> the GADT solution is interesting in that it allows you to deconstruct the form to
14:57:38 <jaspervdj> yeah, the show instance is useful for debugging
14:58:04 <jaspervdj> on the other hand, I can't deny that it makes some stuff more complicated as well
14:58:41 <jaspervdj> well, not necessarily more complicated but you have more code/some duplication
15:04:41 <stepcut> I wonder how your GADT relates to the operational monad
15:08:48 <donri> isn't yesod forms also using applicative?
15:09:44 <stepcut> donri: I believe so
17:39:55 <jaspervdj> stepcut: People have told me that I sometimes "flame" even when I don't intend to
17:40:21 <jaspervdj> So I hope this is not the case in the discussion on reddit, I respect you and your libraries a lot :-)
17:46:57 <mightybyte> All your form libraries SUCK!  Formlets are the one true way!
17:47:07 <mightybyte> :P
17:49:51 <jaspervdj> mightybyte: So does your mother.
17:55:30 <mightybyte> lol
17:56:07 <serialhex> ooh!!!  did i miss someone getting flamed!?!??!  :'(
18:13:54 <jaspervdj> serialhex: No we're all good friends in the haskell community
18:17:03 <donri> jaspervdj: your mom is a formlets library!
18:17:24 <donri> and she so fat because she digests functors all day
18:17:31 <jaspervdj> haha
18:21:11 <stepkut> jaspervdj: no worries. Sounds like I am trying to use df-0.3 in ways you didn't intend :)
18:21:30 <stepkut> jaspervdj: when we actually do the comparison with real working code, things should become much clearer
18:21:40 <jaspervdj> yeah, I figured :-)
18:22:00 <stepkut> jaspervdj: that is why I want to do it -- I am sure it will result in code changes to reform
18:22:06 <serialhex> jaspervdj: i understand that, from the sparse exchange i read i figured you were joaking :)
18:23:09 <serialhex> so i have a funky error coming up, and i'm not sure wtf to do with it... (my haskell skills, while growing, are still very weak)
18:23:12 <jaspervdj> stepkut: code changes and upvotes all around!
18:23:17 <stepkut> :)
18:24:21 <serialhex> error & code from the crash course -> https://gist.github.com/2770760
18:24:28 <stepkut> the thing I like least about reform, is that it is kind of hard to read, and also kind of hard to insert extra markup in the middle of a form. mapView just makes it more unreadable. df-0.3 is definitely a bit easier to read
18:25:35 <stepkut> using HSP, we might actually be able to recreate the original formlets syntax (from the O'Caml) version.. though there are some type-safety issues that I am not sure how to deal with
18:25:37 <donri> if we can do something like the ocaml version, with proofs for type safety...
18:26:51 <donri> stepkut: hey could a similar trick as for proofs be used with acid-state for value-level invariants?
18:27:01 <jaspervdj> hmm, it's been a bit too long since I read the paper
18:31:46 <donri> serialhex: either make the type of inRange more specific, or add type annotations to the number literals
18:32:38 <donri> for example, inRange :: Integer -> Integer -> Integer -> Either String Integer
18:42:08 <serialhex> hmm... ok donri, i'll try that
18:44:51 <serialhex> donri: that worked!  maybe stepcut can change that in the tutorial...
18:45:52 <jaspervdj> stepcut: I get the ValidDate point now :-)
18:46:08 <jaspervdj> not sure if I agree, this feels a bit like why newtypes were invented
18:46:17 <jaspervdj> they definitely are more clumsy though
18:52:05 <donri> serialhex: if you click the "source code" it has (1 :: Int)... but not in the document itself
18:52:08 <donri> stepcut: ^
18:53:38 <serialhex> hmm...  ok (chrome is kind-of a pain, it won't let me just view the source as text, i have to actually dl it and then view that)
18:54:03 <donri> for me it opens directly in vim
18:54:31 <serialhex> -_-  what browser are you using?
18:54:37 <serialhex> chrome also??
18:55:03 <donri> epiphany
18:55:07 <donri> i'm weird like that
18:55:50 <serialhex> hmm, ok, i havnt tried that one
18:56:25 <donri> it's the gnome web browser
18:56:48 <donri> recently renamed "web", but i find that's even more confusing to respond with
18:56:56 <donri> "which web browser do you use?" "web"
18:57:20 <serialhex> ahh, ok
18:58:21 <jaspervdj> donri: I remember liking epiphany but when I last tried it the JS engine was horribly slow compared to FF/chrome
18:58:57 <donri> scrolling is mildly noticably slow on google+
18:59:04 <donri> beyond that, haven't noticed anything
18:59:07 <donri> it uses webkit
18:59:19 <donri> duno which js engine for webkit though
18:59:25 <serialhex> i'm using xmonad, so i have to set up all the spiffy interconnects myself...  opening a pdf from chromium open firefox which open okular :P
18:59:58 <serialhex> i ment 'opens' :P
19:00:11 <donri> http://gfxmonk.net/shellshape/ :)
19:00:54 <serialhex> hmm... i'll have to look at that, thx donri!!
19:01:33 <serialhex> though i like xmonad for more than it's just tiling, it's also uber-lightweight... and when i have ~20 chrome tabs open at any time, that helps!
19:02:20 <donri> lightweight is a lie
19:02:48 <serialhex> oh??
19:04:55 <donri> well i find that kind of setup tends to actually be slower
19:05:01 <donri> simplicity lacks optimization :p
19:05:21 <donri> arch's boot system is horribly slow and resource heavy compared to say systemd
19:06:06 <serialhex> hmm... cause it takes me < 1 min to boot to a login shell & i'm running arch
19:06:30 <luite> what does lightweight mean? memory usage? screen estate?
19:06:31 <donri> takes me seconds :) granted, i boot from an ssd, but it was faster already before that
19:07:18 <donri> http://mjg59.livejournal.com/136274.html bbl dinner
19:07:50 <serialhex> luite: i mean memory / cpu mostly, i have 4+ desktops running at any time and xmonad is responsive (even when i have chromium & VM's running)
19:08:47 <luite> hmm, i usually use chrome, but even with only a few tabs, it seems to use much more memory than gnome with unity
19:08:54 <serialhex> donri: i havn't actually timed it, but that is really spiffy!!  the ssd is probably the biggest contributor tho
19:09:21 <serialhex> hmm...  chromeium does use a bunch of memory, tho i have ~20 tabs open now...
19:09:30 <luite> ubuntu with ssd booted really fast :)
19:09:36 <serialhex> grr, me not spel gud!
19:09:36 <luite> much faster than my current laptop
19:10:10 <luite> i want to buy an ssd but no money
19:10:15 <serialhex> yeah, ssd's are nice!!!
19:10:22 <serialhex> i know how ya feel :'(
19:35:20 <donri> serialhex: no, systemd is much smarter at booting than arch
19:35:35 <donri> arch boots everything, always, and serially
19:35:49 <donri> systemd boots services (and mounts etc etc) on demand and in parallel
19:36:56 <donri> simple designs are easier to reason about, but they're not faster or more lightweight
19:37:39 <donri> consider archiving on unix systems: for each feature you add another layer (tar -> gzip -> gpg). it's simple, powerful, elegant, and horribly inefficient.
19:39:58 <parcs`> arch can also boot in parallel
19:40:31 <donri> parcs`: you mean background services?
19:40:37 <donri> those have dependency issues
19:40:37 <parcs`> oh right
19:40:57 <donri> ACTION used archlinux for three years... but been a while so my knowledge may be dated
19:42:18 <parcs`> anyway, arch has maintained packages that provide systemd no?
19:45:33 <serialhex> donri: if you prepend a service with `@` it will start up in the BG, and i use that for stuff i *know* won't be needed when it first comes up (like, almost everything i added :P )
19:46:57 <serialhex> though, truthfully, my laptop has been up for 5d 23h 23m this time... so i don't really worry about booting it at all (just taking it out of sleep)
19:47:43 <parcs`> i'm not much of a fan of arch anymore. the package maintainers are sloppy and the strong adherence to the philosophy of "keeping it simple" makes it somewhat inflexible
19:49:33 <parcs`> also the AUR is a poor substitute for a real process of opting to maintain a package
19:50:48 <parcs`> my heart lies with debian testing/sid now :)
20:01:21 <serialhex> ehh, i like the rolling-release model, and it has the latest packages... true i need to use chromium instead of chrome and there aren't as many packages for it as there are for debian/red hat, but i get by
20:17:56 <donri> serialhex: they'll still be running always
20:18:24 <donri> parcs`: fedora!
20:18:29 <donri> it's yummy
20:19:00 <parcs`> donri: it's not rolling release is it?
20:19:09 <donri> well there's rawhide
20:19:14 <donri> duno how it compares to sid
20:19:20 <donri> i install ghc from rawhide
20:20:19 <parcs`> yeah, rawhide seems similar to debian experimental, ie do not want :P
20:20:24 <donri> (you can enable a disabled repo temporarily for one command, duno if debian does that)
20:20:43 <donri> why do you necessarily want rolling release though
20:20:51 <donri> it's generally a bad thing
20:20:54 <parcs`> yep i have ghc and cabal installed from sid and the rest of the system is testing
20:21:09 <parcs`> donri: why?
20:21:09 <donri> fedora releases aren't as rare as debian ones, every six month
20:21:37 <parcs`> can you even upgrade between fedora releases? so much is changed every release
20:22:01 <donri> of course
20:22:31 <parcs`> is it as painful as i imagine it to be
20:22:37 <serialhex> donri: i like having the most up-to-date stuff on my pc, though i have a server(-ish) at home and that runs freebsd (mostly to learn it, but also i'm not gonna change it much)
20:23:34 <donri> serialhex: i doubt you need everything to be that recent though, and distros like fedora and ubuntu still update firefox and chrome continously
20:24:25 <serialhex> yeah, but fedora & ubuntu still have ruby 1.8.7 as their main one (1.9.3 is the latest) and i like living on the edge :P
20:25:17 <serialhex> though i dont run windows... that's too far on the edge... :D
20:25:22 <donri> $ ruby --version
20:25:22 <donri> ruby 1.9.3p194 (2012-04-20 revision 35410) [i386-linux]
20:25:24 <donri> hmm ;)
20:25:49 <donri> (i actually run fedora 17 which is due next week)
20:26:04 <serialhex> -_-  cheater :P
20:27:18 <parcs`> i like the balance of recency and stability of debian testing
20:28:04 <donri> parcs`: i actually haven't ever upgraded fedora between releases because i've only run it since two releases and this install was on the new ssd so it was a fresh install
20:28:07 <donri> but
20:28:28 <donri> i think people remember how upgrading ubuntu used to be some years ago, and it's quite different today
20:28:31 <serialhex> i have a laptop with a non-functioning screen i use as a mini-server that runs debian
20:28:45 <donri> i've upgraded ubuntu between releases a few times and these days that just works
20:28:50 <donri> i hear similar stories about fedora
20:30:16 <parcs`> donri: yes but with a rolling release distro there is a less chance of breakage, and it is easier to single out which package broke in the case of breakage
20:30:31 <donri> no, with rolling release there's about an equal risk of breakage *every update*
20:31:04 <donri> archlinux even manages to break pacman itself every now and then, that's fun to recover from
20:31:18 <serialhex> have either of you tried nixos?
20:31:32 <donri> i tried to setup nixos in a vm but it didn't like my partitions
20:31:46 <serialhex> hmm....  :-/
20:31:46 <donri> they have since gone 1.0 so i plan on trying it again some time
20:32:01 <parcs`> serialhex: i have tried it, got turned off by it because it installs a kde system by default and i don't really need the power of nix
20:32:13 <donri> parcs`: hm, they have a minimal base just like arch
20:32:18 <serialhex> ok
20:32:22 <donri> depends on which image you download i think
20:32:27 <serialhex> probably
20:32:33 <parcs`> last time i installed it i got sent to a bloated kde environment
20:32:59 <serialhex> kde is sooooo pretty.......  and soooo fat  :P
20:33:02 <donri> i sort of feel though that the nixos approach to dependency hell is like solving type errors with dynamic typing
20:33:25 <parcs`> i am a gnome 3 fanboy
20:33:39 <serialhex> oh?  i thought it was an interesting solution, though i only skimmed the docs
20:33:47 <donri> parcs`: me too
20:33:57 <serialhex> i havn't played much with gnome :(
20:34:20 <serialhex> though i like the minimalism i have going right now
20:34:22 <donri> serialhex: the majority seems to hate it :)
20:35:43 <serialhex> thats what i hear, though unity is hated even more :P
20:36:45 <donri> i think unity is still an upgrade from gnome2
20:37:18 <donri> but they got a lot wrong too i think
20:37:23 <parcs`> i don't think the majority hates it but rather the people that hate it are very fucking vocal and annoying and dislike change from their precious archaic nostalgic gnome 2 days
20:37:30 <serialhex> i havn't looked at it at all,
20:37:37 <parcs`> i hate unity
20:37:42 <serialhex> parcs`: you okay over there??
20:37:56 <donri> (emphasis mine)
20:37:56 <serialhex> HAHAHAHAHAHAHAHAHA!!!!!!  :P
20:38:32 <parcs`> there is nothing better about unity than what gnome 3 does out of the box
20:38:39 <parcs`> i do not understand why it exists
20:38:46 <donri> parcs`: i love it when people cite torvalds as some kind of expert on the subject
20:39:11 <serialhex> i work at a windows shop, and thus been looking at win 8, and *that* may break MS
20:39:16 <donri> i should counter with stallman... he still starts xorg manually "when he needs to run something graphical"
20:39:20 <stepcut> yeah, linus is no more an expert on desktops than he is revision control :p
20:40:15 <donri> linus is mostly an expert at ranting
20:40:32 <stepcut> yeah, and having fan boys
20:40:43 <parcs`> why does linus hate gnome 3 again?
20:40:58 <donri> "this is slightly different from exactly how i do it, which means it sucks and the author should go hang himself"
20:42:36 <donri> he also likes to whine about things he could easily customize or found in the documentation and he tends to even get things flat out wrong (repeatedly, even after being told so)
20:42:53 <parcs`> judging from http://digitizor.com/2011/08/04/linus-torvalds-ditches-gnome-for-xfce/ that seems to be the case
20:43:27 <stepcut> donri: like micro-kernels vs monolithic ?
20:43:53 <donri> stepcut: sure!
20:44:40 <donri> parcs`: yes... like, he could have right-clicked the terminal launcher or just read the docs that quite plainly suggest ctrl+clicking (which is also consistent with every web browser ever) but no
20:44:42 <stepcut> alas, minix 3 development is painfully slow
20:45:21 <stepcut> oo. minix 3 did get into GSoC though
20:45:34 <donri> so when does gsoc "start"?
20:45:41 <parcs`> donri: i didn't even know about those two shortcuts! i was content with Ctrl-Shift-N
20:45:47 <serialhex> minix 3???  like the minix that linux was kinda-sorta based on???
20:46:18 <donri> parcs`: oh and middle-click = launch new window at new workspace
20:46:25 <stepcut> serialhex: yup
20:46:45 <serialhex> interesting....  i didn't know it was still alive
20:46:46 <parcs`> donri: awesome
20:46:54 <donri> i have ctrl+alt+enter bound to launch a new terminal anyway
20:47:09 <donri> (using magic, obviously, since gnome isn't customizable.)
20:47:23 <parcs`> now the only thing i miss from windows that gnome 3 doesn't have is the Super-arrow shortcuts that tile a window
20:47:24 <stepcut> serialhex: for a long time it wasn't. It was just there for teaching purposes. But a few years ago Andrew decided to start up minus for real and started minux 3
20:47:37 <parcs`> but i think gnome 3.4 has that, which is not entirely in testing yet
20:47:43 <stepcut> serialhex: neat stuff.. you can kill -9 your filesystem server and it should restart automatically
20:47:47 <serialhex> stepcut: spiffy!!!
20:47:47 <donri> parcs`: http://gfxmonk.net/shellshape/
20:47:55 <serialhex> ooooohhh!!!!   i like :D
20:48:20 <stepcut> serialhex: or, if it just buggy and crashes :) But, in linux that would bring down the whole OS
20:48:24 <donri> and yes 3.4 has super+arrow
20:48:41 <serialhex> i've always liked the fact that as root i am the all-powerful god of my machine... unlike windows where, you are a demi-god, and that in name only
20:48:53 <serialhex> nice
20:48:56 <stepcut> nothing has slower development than HuRD though
20:48:57 <donri> parcs`: i take it you know about the drag-to-edge though?
20:49:13 <parcs`> donri: that's nice, and yeah
20:49:22 <donri> stepcut: is it actually slow or just forever experimental?
20:49:23 <serialhex> HAHAHAHHAHA!!  that's been in dev for how many years?  and not really released??
20:49:26 <stepcut> HuRD development is encumbered by an unrealistic attempt to apply GPL3 in the most expansive manner possible
20:50:20 <stepcut> donri: I am on the hurd-NG mailing list (which has not had a post in a long time now). They spent months argument about whether it was GPL compliant to allow OS features that could somehow, possibly be used to implement DRM
20:50:40 <donri> :)
20:50:46 <stepcut> even if the features had lots of important and useful non-DRM related uses
20:51:32 <serialhex> stepcut: -_-  srsly? datz jus stopit!
20:51:39 <stepcut> serialhex: yup
20:52:37 <Majeed> Hi
20:52:44 <donri> why hello there
20:52:54 <Majeed> I m
20:53:03 <stepcut> my favorite moment was when some city dweller gave an analogy about having to shoot a horse, and the guy he was arguing with countered that (a) he was a state-wide rifle marksmen champion (b) had actually had to shoot horses on the farm (c) did not currently own any guns
20:53:22 <Majeed> Hello
20:53:47 <Majeed> Hello
20:53:55 <parcs`> hello!
20:57:25 <serialhex> Majeed: hello there!!
20:57:43 <serialhex> stepcut: wow, just, wow....
21:01:20 <Majeed> Hi
21:03:27 <Majeed> Hello I m in Dubai
21:04:42 <serialhex> how are you?
21:05:10 <Majeed> I m good
21:05:22 <Majeed> How abut you
21:05:40 <Majeed> Asl pls
21:06:17 <serialhex> i am perfectly kosher :D
21:06:37 <Majeed> Ok
21:07:09 <Majeed>   http://maps.google.com/maps?ll=25.135353,55.185534
21:08:28 <Majeed>   http://pics.roomsapp.mobi/idiabA6q5Q
21:09:42 <Majeed> hello
21:12:58 <cemycc> How can I load a css file with Blaze in a happstack app ? I have done something like this: H.link ! A.rel "stylesheet" ! href "style.css" ! type_ "text/css"
21:13:02 <cemycc> but is not working
21:13:29 <stepcut> cemycc: you have a handler that serves the style.css ?
21:13:37 <stepcut> using serveFile or serveDirectory ?
21:13:46 <cemycc> stepcut, no I don't
21:14:08 <cemycc> I will take a closer look on the manual :)
21:14:31 <stepcut> cemycc: that is your problem then. When the browser loads the .html file, it will see that it needs to make another request to get the .css file. So you will need to look at the file serving section to see how to serve files
21:24:26 <serialhex> stepcut: i've only gotten to the file serving part of the tutorial, but i was wondering if there are any spiffy database-y things in happstack?
21:24:59 <stepcut> serialhex: not in happstack-server. There is acid-state, or you can use other databases like mysql, etc
21:25:05 <serialhex> ok
21:25:13 <stepcut> acid-state is cool, and is documented later in the crash course
21:25:15 <serialhex> they're pretty simple to plug in?
21:25:22 <serialhex> yeah, i saw it there
21:25:23 <stepcut> yeah
21:25:28 <stepcut> though, i only use acid-state myself
21:25:29 <serialhex> ok, cool
21:25:49 <serialhex> yeah it seems pretty spiffy, not having to use an ORM or some other sillyness...
21:26:49 <stepcut> yup
21:44:33 <cemycc> stepcut, If I am using the Happstack.Lite where I need to write the call of serveFile: $ serveFile (asContentType "text/css") "style.css" ?
21:45:45 <stepcut> cemycc: seems right. or if you have a bunch of .css and .jpg, .png files, you can put them all in a directory and use serveDirectory
21:46:29 <stepcut> well,you need something like, dir "style.css" $ serveFile (asContentType "text/css") "style.css"
21:47:01 <stepcut> serveFile does not look at the URL at all. it just serves whatever file you give it. That allows you to serve files whose name on the disk is different than how it appears on disk
21:47:27 <cemycc> Now I understood
21:47:30 <cemycc> Thanks
21:47:48 <stepcut> for example, /images/foo.jpg might be mapped to a file on disk like 290347239779, where the file name is the md5sum of the file
21:47:55 <stepcut> or something
21:48:12 <stepcut> that was actually why I created serveFile in the first place.
21:48:32 <stepcut> but, it can be used for other things as well, of course
21:52:20 <cemycc> cool, also this is very useful when you have long paths on .jpg, .css files and in your code you can just write the name of the file
21:53:11 <stepcut> hmm. you still have to match on the path though
21:55:22 <cemycc> for example, dir "style.css" $ serveFile (asContentType "text/css") "../style.css"  and on the template: H.link ! A.rel "stylesheet" ! href "style.css" ! type_ "text/css"
21:55:50 <cemycc> my css file is outside the directory where is the output
21:55:55 <cemycc> and is working.
22:18:45 <stepcut> yeah