Experimental IRC log happs-2008-04-04

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.

01:52:19<int80_h>I'm trying to use the code from MyProject from the happs splash page
01:52:51<int80_h>I can compile, but not see any of the files, index.html etc that are in the public/ subdirectory
01:53:33<int80_h>so, what can I do? I tried putting some files in ~/public.html
02:01:56<int80_h>test
03:21:45<Saizan>int80_h: relative paths refers to the current working directory, usuallu
10:06:19<MarcWeber>Hi. IxSet doesn't support join like operators yet, does it?
10:06:41<MarcWeber>Neither does it provide multi indexes such as Map A (Map B Set) ..
10:07:29<MarcWeber>I've never done profiling.. But keeping all state in memory also means that the garbage collector has to traverse the whole mem, right? Is this kind of waste?
10:07:51<MarcWeber>I mean we do know exactly when an element is removed, does the gc know this as well?
10:11:18<MarcWeber>And if there isn't any index at all ? Then Nothing is returned, correct?
10:12:26<MarcWeber>So it's very likely that you remove an index and forgetting about a query somewhere which will then return [] all the time.. Don't like this.
10:12:43<Lemmih>Generational garbage collection hopefully comes to the rescue.
10:13:33<MarcWeber>I've only read about those options telling that more than 2 generatiosn are hardly ever neede unless your app runs for a very long time..
10:14:00<MarcWeber>I'll look it up now
10:16:37<MarcWeber>:).. Yeah this may help a lot and only trigger a full scan each while and not several times a secnod..
10:17:00<MarcWeber>Why is IxSet implemented using dynamic typing ?
10:17:16<Lemmih>Static typing is hard.
10:18:22<MarcWeber> collect [] = empty
10:18:23<Saizan>you need to list the indices in the type if you want it static, it's not so hard, better done with a GADT though
10:18:34<MarcWeber>should be replace by error "no index defined" or such..
10:18:47<MarcWeber>But it shouldn't take down your app as well.
10:20:00<MarcWeber>Saizan, Lemmih how do you feel about getting [] if there is no index ?
10:20:15<Lemmih>Saizan: Feel free to fix it if it's not so hard.
10:20:41<MarcWeber>Saizan: I'd be glad to help where I can.
10:21:24<MarcWeber>It will be hard to provide transaction like stuff. Is it needed? Or are all changes kept in memory and only then pushed to state using those events?
10:21:57<Saizan>Lemmih: what do you think about adding a class Indexable a ix where index :: a -> ix ? which extracts values corresponding to the index from an element
10:22:01<Lemmih>MarcWeber: Say again?
10:22:43<MarcWeber>In postgres it's very common for business applictaions to do a START TRANSACTION .... INSERT / UPDATE /... COMMIT.
10:23:09<Lemmih>MarcWeber: All events are fully ACID compliant.
10:23:13<MarcWeber>This whole action can be represented in one event I guess. That would be the happs way?
10:23:50<Lemmih>MarcWeber: We intentionally don't have transaction that span multiple events.
10:25:12<Lemmih>Large transactions kill scalability.
10:25:21<MarcWeber>Think of a business application: You want to edit 3 forms.. Than you can push changes of form 1 and 2 to db without comitting. HAppS way would be keeping those changes in memory and then commit all or nothing at once, right?
10:26:11<Lemmih>MarcWeber: Yes.
10:27:13<MarcWeber>Saizan: Do you have time to talk about implementing a static typed version of IxSet which can be used in real apps having most benefits of haskells type system?
10:27:32<Lemmih>(and the only reason you can have lingering transactions in databases is because they rarely give you ACID compliant transactions)
10:29:07<MarcWeber>Yeah.. I've seen that the only use of transaction is not making the database keeping a lot of temp data which will be commited eventually.. But only to make more than one INSERT/UPDATE/DELETE behave like atomic operations which should be sent to database sequentially..
10:29:12<Lemmih>Transactions in HAppS are safe enough to write a banking system. Transactions in PostgreSQL/MySQL are not. They cheat to get speed.
10:30:07<MarcWeber>Where to get all this knowledge ? :)
10:33:34<MarcWeber>It's interesting anyway because Postgresql is used by adempiere which is a business management system targeting small to medium sized enterprises
10:34:39<Lemmih>The race conditions are usually acceptable.
10:35:07<Lemmih>There are some discussions of this in the postgresql manual.
10:39:51<Lemmih>ACTION heads out to annoy some postal workers.
10:40:27<Saizan>MarcWeber: i've finished cleaning a little what i had written, it's 400 chars too much for hpaste :\
10:44:11<MarcWeber>I'm not familiar enough with syb-with-class right now. So do you think returning error "no index defined" is a good way? I think an error is better than getting not expected results..
10:46:28<Saizan>my code doesn't use syb-with-class
10:47:13<Saizan>however, (error "no index defined") needs to be catched with catch in IO
10:48:30<MarcWeber>I know.. but what happens if someone removes an index without having a look at all queries? getting an error is better than getting wrong results.. Ideally we should filter all items.
10:48:54<MarcWeber>It's about IxSet.hs line 411.
10:53:45<Saizan>i see, well i've not a strong opinion on this, the [] case should never happen..
10:56:25<MarcWeber>But you agree that if it happens you prefer getting an error message ?
10:56:40<Saizan>yeah
10:57:04<Saizan>using Maybe (IxSet x) as return type is too cumbersome?
10:57:35<MarcWeber>Because it should not happen .. yes.
10:57:56<MarcWeber>Saizan: Do you prefer returning Maybe a over m a ?
10:58:09<MarcWeber>because using ma you can pass an error message using fail ".."
10:58:29<MarcWeber>Or is it much slower than using Maybe ?
10:59:01<Saizan>oh i said Maybe just because it's the simpler "error" type :)
10:59:33<MarcWeber>computer says : "Can't start.. but I won't you tell why :)"
10:59:51<MarcWeber>ACTION *ggrrr annoyging*
11:00:37<Saizan>dynamic typing + exception in pure code leads to anger too i think :)
11:01:48<Saizan>so you think the static version is too complex?
11:02:10<MarcWeber>Sure. But you know about it and you can fix it.. getting [] means you get the wrong result .. maybe for years. Or maybe returning [] and tracing a message ?
11:05:29<Saizan>i'd stay with an exception or Monad m => m (IxSet a)
23:50:30<MarcWeber>Saizan: Can you help me understanding your code?

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