00:01:19 <alpounet> i mean, a clckwrks instance will have a few "modules" in it: the "classic" pages, the blog, the bugtracker, etc
00:01:41 <alpounet> each of these submodules will care about IDs and what not, but why have a "ViewPage" at the root?
00:01:52 <alpounet> (this is an actual question)
00:07:14 <donri> clckwrks: for people on the clock
00:10:20 <donri> alpounet: because pageid is a newtype and blog is just a placeholder until there's a blog component
00:12:23 <donri> but yea maybe pages (etc) should be a separate plugin and instead you'd have data ClckURL = ViewPage PageURL | Blog BlogURL
00:12:38 <donri> i bet that's the longer-term plan
01:04:01 <donri> {-# LANGUAGE FlexibleInstances, FunctionalDependencies, MultiParamTypeClasses, OverlappingInstances, TypeOperators, UndecidableInstances #-}
01:04:02 <donri> yep, I'm being really naughty
01:05:29 <alpounet> donri, a blog post is a page too
01:05:36 <alpounet> i don't like the name "ViewPage" i guess
01:06:12 <alpounet> ViewPage should really just be "Page" or "CorePage" or something
01:06:37 <donri> blog posts have different semantics from pages
02:57:10 <stepkut> there is a blog component
02:57:27 <stepkut> Blog shows you the main blog view, where-as ViewPage shows you individual pages
02:57:34 <stepkut> and EditPage edits them
02:57:41 <stepkut> and NewPage creates them
03:00:08 <stepkut> fortunately, we can change them easily, because we will get type errors telling us where we need to update things :)
03:01:24 <stepkut> a more RESTful thing to do might be, data Action = Create | Delete | View | Edit ; data ClckURL = Page Action
03:01:44 <stepkut> data ClckURL = Page PageId Action
03:01:46 <stepkut> then you could do
03:01:55 <donri> instance IsString (PageId -> ClckURL) where fromString "view-page" = ViewPage
03:01:56 <donri> there i fixed it
03:01:58 <stepkut> <a href=(Page (PageId 1) View) >
03:02:39 <stepkut> that's a pretty bogus use of IsString
03:02:48 <stepkut> it is official discourage by the simons
03:03:16 <donri> really? i was being perfectly serious with it
03:03:35 <stepkut> what happens when the string is not "view-page" ?
03:03:55 <stepkut> IsString is used for converting String literals to string types.. which (PageId -> ClckURL) is not one of
03:04:07 <donri> fromString _ = const Delete
03:04:12 <donri> there i fixed it
03:04:46 <donri> ACTION was joking, this whole time!
03:05:02 <stepkut> I can't even figure out what you would do with that instance
03:05:09 <donri> :D
03:05:28 <donri> the joke is that this is almost what other web frameworks do
03:05:52 <stepkut> no wonder I don't use them
03:28:23 <stepkut> Lemmih: I believe Archive.readEntry forces the entire checkpoint file into RAM in order to calculate the crc16. Though I think getLazyByteString also forces the whole checkpoint into RAM as well
03:32:21 <stepkut> I guess the first place to start is to confirm that getLazyByteString is being silly and fix that
11:00:54 <alpounet> so, currently, the "url representation" of the ClckURL constructors is determined by derivePathInfo?
15:47:39 <stepkut> alpounet: yes
15:48:06 <stepkut> alpounet: so if we changed derivePathInfo to use a nicer looking default, that could get us a long way
15:51:22 <alpounet> hmm
16:01:08 <stepcut> but doing them by hand could be even better
16:01:23 <stepcut> though maybe not
16:02:49 <stepcut> since we have complete flexibility over how we name the constructors, using a simple rule to convert to and from a string may be sufficient?
16:02:54 <stepcut> provided we like the rule?
16:03:20 <stepcut> also, we can create PathInfo instances for different types using different methods
16:58:02 <stepkut> donri: http://code.google.com/p/happstack/issues/detail?id=215
17:00:46 <donri> yea, i think i documented that in the haddocks
17:00:56 <stepkut> yeah
17:01:01 <stepkut> we cover that later in the thread
17:01:39 <stepkut> donri: how do I fix the crash course?
17:06:10 <donri> stepkut: either put greet on window or use jmResponse
17:06:23 <donri> jmResponse and !greet
17:06:42 <stepkut> k
17:07:43 <donri> don't need to call it as window.greet though because that's the same as greet()
17:10:06 <stepkut> ah
17:59:11 <donri> upcoming yui release brings treeview to core
19:04:03 <stepkut> alpounet: find anything out about Haskell+Android?
19:05:08 <alpounet> stepkut, nah :(
19:05:10 <alpounet> nothing at all
19:05:20 <alpounet> did you see my post on -cafe a week or two back?
19:07:54 <stepkut> alpounet: yeah.. but I didn't see any responses :)
19:08:07 <alpounet> yeah
19:08:15 <alpounet> was just wondering if that was why you were asking me this
19:08:41 <stepkut> yup
19:08:54 <stepkut> was hoping to run happstack on my phone :)
19:09:01 <stepkut> I know happstack builds on arm, so..
19:09:11 <stepkut> and I can't get ahold of a raspberry pi
19:34:59 <alpounet> i even suggested a way to have haskell on android
19:35:04 <alpounet> but nobody answered
19:35:26 <alpounet> however Cale was telling me about someone at his company investigating this
19:36:55 <stepkut> well. someday.
19:37:04 <stepkut> I tried to port GHC to ARM many years ago myself
19:37:17 <stepkut> got an unregisterised build working, but then ran out of time
20:26:18 <alpounet> uh
20:26:30 <alpounet> i was thinking about relying on LLVM for that but well
20:26:36 <alpounet> it isn't that easy
21:54:09 <stepkut> making cereal lazy is getting ugly
21:54:32 <stepkut> in runGetLazy' it starts by calculating the length of the lazy string :-/
21:55:53 <donri> :D
21:59:57 <stepcut> guess I am done with that for the day
22:00:01 <stepcut> emailed the maintainer
22:00:31 <stepcut> would be nice to start looking at the new HTTP parser soon
22:00:34 <stepcut> like.. tomorrow
22:00:39 <stepcut> do something fun for a change :)
22:02:19 <donri> \o/
22:04:49 <stepcut> also, someone send me a raspberry pi please!
22:06:34 <stepcut> i guess i should look into something like this instead, http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=IMX53QSB