[03:29] *** Lawouach has joined #kamaelia
[05:01] *** salmon_ has joined #kamaelia
[05:02] *** Lawouach_ wonders why the Selector component is a threaded component
[05:53] < Lawouach_> Right, It seems that since the scheduler runs a loop, it leads to the Python process to consume quite a good chunk of CPU time (when looking at the top output)
[06:00] < MS-> The selector is a threaded component because a select call blocks when there's nothing happening on a socket.
[06:00] < MS-> The alternative is it busy waits
[06:01] < MS-> Busy waiting for some things is preferable, but it was changed to threaded when we added the UnixProcess component because otherwise the selector would be busy waiting
[06:01] < MS-> and starving UnixProcess of CPU
[06:02] < MS-> ie essentially it's to prevent resource starvation
[06:03] < MS-> The scheduler will also pause (ie effectively time.sleep - though it's more intelligent than that) when all components are .paused()
[06:03] < MS-> It could be improved though
[06:03] *** Uraeus has joined #kamaelia
[06:04] < MS-> I've realised also that I have too many pots in the air at the moment, so my immediate focus is to *clear* /branches so that I can create an Axon2 branch there now that I know what I need from it
[06:04] < MS-> That said, our director at work is going to be demoing something at the largest international broadcasting convention in IBC that I haven't
[06:05] < MS-> finished writing yet (about 10-20% done so far, but 1/2 the key part is done)
[06:05] < MS-> So that's really my actual general focus at present
[06:06] < MS-> does mean I'm a little distracted, but the upside is its written with kamaelia, so I'm spending alot more time on kamaelia related code at the moment
[06:06] < MS-> Incidentally the scheduler was originally *designed* to be busy waiting, which is also part of the issue
[06:07] < MS-> A busy waiting scheduler in a network server is actually quite useful
[06:07] < MS-> since if you starve out all other processes, the server gets all the CPU
[06:08] < MS-> If you need to release the CPU you could try adding
[06:09] < MS-> (and that's the issue you're trying to deal with - ie you want to force kamaelia to play nicer with something else)
[06:09] < MS-> Then rather than running a system with
[06:09] < MS-> .run()
[06:09] < MS-> or with scheduler.run.runThreads()
[06:09] < MS-> which results in this loop:
[06:10] < MS-> Actually no that's fine.
[06:10] < MS-> you just want to add slowmo in
[06:10] < MS-> with a very small number
[06:10] < MS-> say 0.001
[06:10] < MS-> The scheduler does however need the rewrite finished
[06:11] < MS-> And I can't really focus on that whilst there's a ton of stuff in /branches really.
[06:11] < MS-> I know that's a pain & I'm sorry
[06:13] < MS-> It *is* down to 5 branches to clean, prune, and either merge or reject now though
[06:13] < MS-> If there was a way of renaming branches in subversion without losing the appropriate branch point, then that would be useful, and if mercurial allows that, that would be a good reason for switching to mercurial now that it's available
[06:37] *** Uraeus has joined #kamaelia
[06:53] < vmlemon> Hi
[06:54] < vmlemon> Has anyone looked at Google Wave yet, out of curiosity?
[06:55] < vmlemon> (It's XMPP based - which is should be a carrot, assuming that Lawouach_ hasn't already played with it) ;)
[08:15] < Lawouach_> I haven't yet because it is indeed a carrot :)
[08:45] < vmlemon> Heh, I finally managed to set up their demo server
[08:45] < vmlemon> Although the Java-based client seems a little broken
[08:45] < vmlemon> *which should
[08:45] < vmlemon> Even
[08:46] < vmlemon> There's console output from it at http://paster.dazjorz.com/?p=4636, if anyone's interested
[09:39] < Lawouach_> MS-: thanks for the input
[09:39] < MS-> you're welcome - thanks for the feedback
[09:40] < MS-> I really am trying to get to the stage where I can focus on optimisations, but I figured that clean up was more important if the code is "good enough" (but could be better) for the moment
[09:40] < MS-> Also, I'm going through Jason's largest branch
[09:41] < MS-> which I know has stuff on it worth merging
[09:41] < MS-> But it transpires that what it looks like he's done with it was
[09:42] < MS-> branch off /trunk
[09:42] < MS-> then merge from /branches/my_old_nasty_scratch_branch
[09:42] < MS-> then add lots of fixes to lots of random things
[09:42] < MS-> then added his application code, in one go
[09:42] < Lawouach_> cleaning up the code would be a huge gain already
[09:42] < Lawouach_> performances are fine
[09:42] < MS-> which means there's lots of work to be done
[09:42] < MS-> cool
[09:42] < MS-> But as you can imagine I think it's worth doinG!
[09:42] < MS-> :)
[09:43] < MS-> (cleanup this is :) )
[09:43] < Lawouach_> I'm now investigating why we see some CPU usage peak since we are running some code using Kamaelia
[09:43] *** MS- nods
[09:43] < MS-> Knowing the original design architecture there helps I guess as well.
[09:43] < Lawouach_> I guess
[09:44] < Lawouach_> well in any case I need to clearify a few things first
[09:44] < MS-> k
[09:44] < Lawouach_> clarify
[09:44] < MS-> I got it :)
[09:45] < Lawouach_> :p
[09:45] < MS-> You should see the words I come up with ;)
[09:46] < Lawouach_> :)
[09:59] < MS-> biab
[09:59] *** MS- has parted #kamaelia
[10:02] *** Davbo has joined #kamaelia
[12:05] *** MS- has joined #kamaelia
[12:05] < MS-> afternoon
[12:05] < Davbo> Hey MS-
[12:41] *** salmon_ has joined #kamaelia
[14:00] *** MS- has parted #kamaelia
[15:15] *** Davbo has joined #kamaelia
[15:35] *** Davbo has joined #kamaelia
[15:49] *** salmon_ has joined #kamaelia
[16:36] *** MS- has joined #kamaelia
[16:36] < MS-> evening
[16:45] < Davbo> Hey MS-
[16:45] < Davbo> hunting a bug since 2:30 which needed 1 line fix
[16:46] < Davbo> and the fix was an import :-\
[16:47] < MS-> Well, look at it this way you found the bug
[16:49] < Davbo> Ahhhh!! I think I get how that makes it work
[16:49] < MS-> what makes what work? In kamaelia ? Something else ?
[16:49] < Davbo> Sorry, eureka moment with something else
[16:50] < MS-> ah
[16:50] < Davbo> it was something I'd done with threading - so the imports didn't work as I expected
[17:04] < MS-> I see
[17:05] < MS-> Now, you see, that's what kamaelia is designed to stop happening - to stop weird things happening when you do concurrent stuff :)
[18:07] < MS-> sigh, a mail about pythonicness
[18:07] < MS-> Irony is I can't actually read what the proposed syntax is supposed to do
[18:08] < MS-> But it's a suggestion, a concrete interested one at that, so I'll reply, since it's nice to get such things :)
[18:09] < MS-> I think I'd be curious to hear other views first tbh
[18:10] < MS-> So I may wait a day or so before replying.
[18:10] *** Uraeus has joined #kamaelia
[18:12] < Davbo> yeah just read that
[18:13] < Davbo> interesting that after having just started using Kamaelia a little he's suggesting major syntactic changes
[18:15] < Davbo> that itself might be more valuable than the suggestions themselves
[18:15] *** Davbo shrugs
[18:15] < MS-> It's clearly a reaction against the current lack of syntactic sugar
[18:15] < MS-> Which is fine, because I recognise that's useful
[18:16] < MS-> Also, some of the reasons for what's currently there are unclear if you look at kamaelia.
[18:16] < MS-> since a heavy influence on current syntactic sugar is "must be portable to another language"
[18:16] < MS-> Do avoid becoming an evolutionary dead end
[18:17] < MS-> But there are somethings that can be done, and brainstorming ideas is useful
[18:17] < MS-> The problem is I can't see how the proposed syntax relates to current syntax
[18:17] < MS-> Well, I can on a level, but not completely
[18:18] < MS-> But I may simply have a blind spot
[18:20] < MS-> All that said, my general view on these things is "try implementing it and using it, and see what works".
[18:20] < Davbo> it'd be useful to see some code for his proposed changes
[18:20] < MS-> I'd like to see what the traditional code would look like
[18:20] < MS-> ie what that code replaces
[18:21] < MS-> (currently going through this branch: private_JMB_Wsgi - which is rather painful due to the way it was made)
[18:21] < MS-> (hence focussing on that at this instant)
[18:21] < Davbo> hmm, was that Jason's?
[18:23] < Davbo> think I struggled trying to review some of his code iirc
[18:23] < MS-> yep
[18:23] < MS-> The problem with that branch is the sheer number of unrelated changes
[18:23] < MS-> which are already on /trunk
[18:24] < MS-> Once I restructured your code, and rebranched it, it was alot easier to work with for example
[18:24] < MS-> Picking out a number of components as candidates for generalisation and merge into the main namespace
[18:24] < Davbo> You looked at mercurial at all MS-?
[18:24] < MS-> ronny mentioned that at europython
[18:25] < Davbo> code.google support it now
[18:25] < MS-> I think I'm tempted to consider that, but want to get /branches in order first
[18:25] < MS-> before throwing something new into the mix
[18:25] < Davbo> i'm using it for work now
[18:25] < MS-> what do you think of it?
[18:26] < Davbo> still getting used to it
[18:26] *** MS- nods
[18:26] < Davbo> but being able to commit on the train to and from work is excellent
[18:26] < MS-> Do you do much merging?
[18:26] < ronny> re
[18:26] < ronny> who pingend me
[18:27] < Davbo> Personally I've only merged with it a few times but it's quite a painless process
[18:27] < MS-> ronny: I mentioned you because of the conversation at europython about mercurial
[18:27] < Davbo> it doesn't try anything clever, just leaves it to you if there is a conflict
[18:27] < ronny> my client wont highlight any more
[18:28] < MS-> Ah
[18:29] < ronny> hg is pretty much the most decent vcs in my oppinion
[18:29] < Davbo> Doesn't Python use it now?
[18:30] < ronny> but my view on the vcs's is partially disturbed by the fact that each of them is very weird and nasty and abstracting them isnt really a salvation
[18:30] < ronny> Davbo: not yet
[18:30] < MS-> Davbo: They're shifting over.
[18:30] < Davbo> ah
[18:30] < ronny> Davbo: python will ue it in future, they are still in the process of setting up the repo conversation
[18:31] < Davbo> I guess it's not exactly a trivial move
[18:31] < ronny> the python repos are quite rare, and they want a really decent conversation
[18:31] < ronny> *large
[18:31] < ronny> hmm
[18:31] < ronny> hg is my favourite, cause its the only vcs i can keep in my mind as whole
[18:32] < ronny> and its fast
[18:32] < ronny> all others are too complex to broether
[18:32] < Davbo> yeah
[18:32] < MS-> Well, I've promised to give it a proper look, and I will. But my first priority is to merge outstanding code. (or reject it. One or the other)
[18:32] < Davbo> I know what you mean, the inital move is somewhat confusing though -- coming from svn for example
[18:32] < ronny> hg is pretty simple revlogs, manifests, changelog,
[18:33] < MS-> fwiw , I like simple
[18:33] < Davbo> I think you'd like it MS-
[18:33] < ronny> its imperfections are signatures, tags and a few really special case merges
[18:33] < MS-> I can think of specific cases for merging I'd like to be simpler, so I'll test that with a different code base first
[18:33] < ronny> MS-: in genral im in love with hg
[18:33] < MS-> :-)
[18:34] < MS-> That's a very strong positive statement :)
[18:34] < ronny> i got quite deep into it, even supplyed some accepted patches
[18:35] < ronny> the only weak point that really nags me is the tagging
[18:35] < ronny> but i'll work around that in anyvc
[18:35] < Davbo> what's wrong with that ronny ?
[18:35] < ronny> Davbo: tags are stored in a file thats part of the history
[18:35] < ronny> same goes for signatures
[18:36] < MS-> hm
[18:36] < ronny> it gives some interesting properties
[18:36] < Davbo> Ah yes
[18:36] < ronny> people really like having a history of tags
[18:36] < MS-> Mind you I hate the way subversion does tagging
[18:36] < ronny> +some
[18:36] < ronny> MS-: svn is completely broken in that regard
[18:37] < MS-> Whilst svn was touted as being designed as a "better replacement for CVS"
[18:37] < Davbo> I've used some local tags -- how are they stored?
[18:37] < MS-> I was rather surprised at just how badly implemented tags are
[18:37] < ronny> Davbo: file within .hg
[18:37] < ronny> MS-: svn was a epic fail from the beginning
[18:38] < ronny> going for "cvs right" cant possibly yield reasonable results
[18:38] < Davbo> hah
[18:38] < ronny> also they like retarded things like webdav
[18:39] < ronny> seriously, if adter an hour of the webdav spec someone still doesnt reject implementing it hes either dammaged, or gets more money than reasonable
[18:40] < Davbo> we really need to alter our hg setup though, it's currently behind nginx
[18:41] < Davbo> makes for some odd behaviour
[18:41] < ronny> MS-: btw, the kamaelia repos might be an intresting case for use with hgsubversion
[18:41] < ronny> (as far as i understand the layout isnt exactly standard and you used funky dvcs techniques)
[18:48] < Davbo> Now you've revealed your knowledge of hg ronny you can expect me poking you for assistance when I break everything ;-)
[18:48] Reply: Hi, I'm a bot. I've been put here to answer faq's and log the channel.
[18:48] Reply: I've not really been configured yet, so I won't do much here yet :-)
[18:49] < ronny> MS-: teach that bot to order steak and strippers, all other functionality will seem secondary
[18:49] < Davbo> hah
[18:49] < ronny> Davbo: im doing more insane things atm
[18:50] < MS-> ronny: Indeed. I'll see what I can do. Currently going through a large messy patch at the moment.
[18:50] < MS-> heh
[18:50] < ronny> Davbo: currently im creating a way to run the unittests for my vcs abstraction lib on multiple versions of each vcs
[18:50] < ronny> and boy is that nasty
[18:50] < MS-> my reply was out of context, but if kamlogbot could do that, it could be a money spinner :-)
[18:51] < Davbo> wow, sounds it
[18:51] < ronny> hmm, its my idea, can i has a free try
[18:52] < ronny> !steak&strippers
[18:53] < Davbo> wonder if we can find a stripper website with a REST API
[18:54] < ronny> i dont tihnk strippers have api
[18:54] < ronny> and im not sure if i wanted those with one
[18:55] < Davbo> Good point
[18:56] < ronny> ok
[18:56] < ronny> time to invent a reasonable resource manger for pygtkhelpers
[18:56] < ronny> (for propperly loading ui files and images)
[18:59] < MS-> Davbo: "stripper website with a REST API" - you'd have to scrape it
[18:59] < MS-> (or towel it down)
[19:01] < Davbo> Ack lol
[19:02] < Davbo> Someone needs to edit the log files and s/stripper/disney
[19:02] < MS-> heh
[19:07] < ronny> i have the orginal in a faultsafe DHT
[21:22] *** MS- has parted #kamaelia