[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 |