Experimental IRC log happs-2008-03-19

Available formats: content-negotiated html turtle (see SIOC for the vocabulary)

Back to channel and daily index: content-negotiated html turtle

These logs are provided as an experiment in indexing discussions using IRCHub.py, Irc2RDF.hs, and SIOC.

00:58:45<MarcWeber>I've done a quick benchmark of HAppState (very simple: list of Ints) and compared it to 20.000 INSERT INTO (Mysql) http://rafb.net/p/2Db1PT94.html
00:59:09<MarcWeber>HAppS state system is about 8 times faster. But it doesn't have to spend time on parsing inserts..
01:00:18<MarcWeber>And when using INSERT INTO x VALUES (1), (1), (1), (1), (1),
01:00:35<MarcWeber>Mysql is even faster (but only has to flush once I think)
01:02:42<Saizan>faster than happs?
01:03:38<MarcWeber>Saizan: No, when adding another state manipulating function taking a list of ints my HAppS executable is no taking 0,1s but 3ms :)
01:04:30<MarcWeber>In other words: HAppS using 20.000 state altering events is as fast as MySQL with one transaction(=INSERT) and parsing this query
01:05:13<MarcWeber>I bet people will start using the HAppS state system for GUI applications as well..
01:06:15<MarcWeber>Now I'm keen on learrning more about IxSet
01:07:12<MarcWeber>I no longer can imagine my computer doing 20.000 flushs/ seeks on disk within a tenth of a second anyway..
01:09:05<Saizan>IxSet is a bit unsatisfactory, everytime you filter the elements it rebuilds all the indexes, even if laziness should help a little..
01:11:21<MarcWeber>filter means deleting some elements? So it should just remove single elements from indexes as well?
01:15:40<Saizan>MarcWeber: i mean things like the @> @= etc.. operators
01:16:33<MarcWeber>I don't know about them yet.
01:17:22<Saizan>the problem is that it's not so efficient to remove single elements from other indexes as well..
01:19:05<MarcWeber>Hmm. so they should be marked as deleted and only if the list is "dirty" enough clean it once?
01:19:23<MarcWeber>Funny The Example doesn't have any state
01:19:25<MarcWeber>data EntryPoint = EntryPoint deriving (Typeable)
01:21:06<Saizan>the state is in the dependecies
01:21:08<MarcWeber>Maybe I still don't have understood type families totally. I'll read the whole example first
01:21:21<MarcWeber>Sessions String :+: ..
01:22:30<Saizan>well Dependencies EntryPoint is a typelevel list of other types which gets loaded as components as well
01:28:58<MarcWeber>Web framework is a bad description for IxSet I think
01:29:36<MarcWeber>package-info.xml has much more info :)
01:30:08<Saizan>right, that is probably just a left-over
01:32:30<MarcWeber>Cool. There is a lot of documentation in IxSet.hs :)
11:45:10<MarcWeber>Is there some documentation about sybwc ?
11:51:04<mae>hey guys
12:19:16<Saizan>MarcWeber: there's a paper
12:32:22<MarcWeber>Ah. Thanks
12:33:15<MarcWeber>Is Syb with class an implementation of the scrab your boilerplate approach?
12:43:21<Saizan>yes, SYB stands for that
12:44:17<Saizan>http://www.cs.vu.nl/boilerplate/
14:55:22<mae>has anyone ever had this issue?
14:57:18<mae>hmm
14:58:07<mae>HTTP request failed with: too few bytes. Failed reading at byte position 65
14:59:18<mae>i think it might have something to do with me changin a datatype
14:59:24<mae>changing (
14:59:29<mae>how does the migration thing work
15:00:34<Lemmih>Looks like a spread error.
15:00:47<Lemmih>Oh, no.
15:01:35<Lemmih>Keep the old version of your data type around and describe how to migrate from it to the new one.
15:01:51<Lemmih>(or delete your _local/ directory)
15:04:05<Lemmih>Hm, we should probably give a better error message in this case.
16:09:06<Lycurgus>is there a prefered IDE to use while developing happs apps?
16:10:43<Lycurgus>(looking for something more than yi and the haskell emacs mode i currently have)
16:12:30<Lemmih>I use emacs.
16:13:24<Lycurgus>with haskell-mode-2.4 ?
16:14:15<Lycurgus>or just emacs?
16:20:26<Lemmih>With haskell-mode.
16:23:27<Lycurgus>Acknowledged. I've just heard tell of a Shim-Yi integration stub and will investigate. Ideally I'd like something like slime for haskell.
21:35:10<MarcWeber>mae_: This error occurs when using the binary library and reading datastructures (when it expects more bytes than it actually got)
21:35:45<mae_>ok, any ideas what could be the cause?
21:36:57<MarcWeber>mae_: The only occurence of binary within happs is state / event serialization
21:37:17<MarcWeber>Are you sure there is any space left on your disk?
21:38:17<mae_>yeah i got plenty ; )
21:38:19<MarcWeber>Or you've changed your data structuries and tried reading log files / old state without migration as Lemmih has told you
21:38:34<mae_>ahh yeah that is my problem i am sure ; _)
21:38:35<mae_>thank you
21:38:59<MarcWeber>So if you are only testing remove _local and start again (but then your state will be lost)
21:39:11<mae_>right, i just want to know how to do the migrations
21:39:22<mae_>you define a new version of your data structure?
21:39:40<mae_>what code should i read to figure this out
21:39:45<mae_>I didn't find anything in HappS data
21:40:50<MarcWeber>mae_: Have a look at AllIn
21:40:58<MarcWeber>in HAppS-server/Examples
21:41:09<MarcWeber>OldSession migrates to Session
21:41:30<MarcWeber>HAppS saves <version as int><serialized data structure bytes>
21:41:58<MarcWeber>If the int value doesn't match the class instances will tell HAppS which migration function to use and read the old version, then migrate it.
21:46:26<mae_>cool
21:46:27<mae_>thanks
22:07:27<mae_>so do i have to do this migration thing on a per datatype basis
22:07:38<mae_>or can i just set one version via my state type
22:07:53<MarcWeber>Sure
22:08:01<MarcWeber>You can migrate one without touching others
22:15:24<mae_>ok
22:15:26<mae_>well for instance
22:16:06<mae_>lets suppose i have my State datatype which has a record field name :: Name
22:16:18<mae_>name is defined as newtype Name = Name String
22:16:33<mae_>now i change name to Name = Name String Integer
22:16:43<mae_>do i have to migrate both data structures?
22:24:33<forkiliens>anybody here?
22:24:45<MarcWeber>http://rafb.net/p/FXzigO88.html @ mae_
22:27:35<Lemmih>You don't have to change MyData.
22:33:48<MarcWeber>Lemmih: Don't understand then. Do you mean don't change the first MyData (state written) or the second MyData (tried reading sate -> failure) ?
22:34:46<Lemmih>MarcWeber: If Name is the only changed data structure, only Name has to be migrated.
22:35:53<MarcWeber>Lemmih: Maybe I've misunderstood mae_. I think Name is a substructure of another one (which I've called MyData)
22:36:21<Lemmih>MarcWeber: That is what I understood as well.
22:36:41<MarcWeber>fine. Then derive serialize is really nifty ..
22:36:42<Lemmih>The migration code handles nesting perfectly well.
22:43:54<MarcWeber>Lemmih: Do you mind me adding this as example to happs-state?
22:44:22<MarcWeber>Maybe withen testState to illustrate it? Because it wasn't obvious to me.
22:45:05<Lemmih>MarcWeber: Not at all.
22:45:12<MarcWeber>Or would AllIn be the better place?
22:46:38<Lemmih>I'm not a fan of AllIn. I like small, distinct examples.
22:47:07<MarcWeber>:) fine
22:48:36<MarcWeber>Are file called UpperCamelCase or lowerCamelCase by default?
22:48:49<MarcWeber>there is CheckpointTest but testState.hs
22:59:32<Lemmih>Yeah, it's a bit random.
23:11:31<mae_>h
23:11:32<mae_>hmm
23:11:51<forkiliens>Server error: Prelude.last: empty list
23:11:58<forkiliens>yuhuu
23:12:06<forkiliens>my first server error with happs.
23:12:11<forkiliens>finally it works.
23:12:13<forkiliens>:)
23:12:41<mae_>ok so then, is there any way to make this less verbose: http://hpaste.org/6512
23:16:10<Lemmih>mae_: Use type synonyms?
23:16:45<Lemmih>And you probably don't use 'deriveNewData'.
23:17:16<Lemmih>Plus, version 0 is the default.
23:31:23<MarcWeber>Haskell is really incredible .. After adding all stuff (instances, derive etc).. you compile and .. -> success !
23:31:26<MarcWeber>http://hpaste.org/6513
23:31:32<MarcWeber>That's my small example
23:47:02<Lemmih>Looks good.
23:52:07<mae_>what exactly does deriveNewData do
23:52:43<Lemmih>It derives NewData.

Back to channel and daily index: content-negotiated html turtle