[06:12] *** j_baker has joined #kamaelia
[06:20] *** vmlemon_ has joined #kamaelia
[06:21] < vmlemon_> Hi
[06:22] < j_baker> hello
[06:51] *** vmlemon_ has joined #kamaelia
[06:57] < vmlemon_> kamaeliabot: dance
[06:57] Reply: does the macarena
[06:57] *** Lawouach_ has joined #kamaelia
[06:58] < Lawouach_> morning all
[06:58] < vmlemon_> Hi Lawouach
[06:59] < Lawouach_> hi vmlemon_
[07:46] < Lawouach_> http://oubiwann.blogspot.com/2008/05/required-reading-ultra-large-systems.html < -- beyond the divmod propaganda this is an interesting resource
[07:48] < MS-> Appears to be content free IMO. I presume you mean the links?
[07:49] < MS-> After all, it doesn't even define what they mean by ultra large systems, and just leaves that to the reader to infer
[07:51] < Lawouach_> Yes.
[07:52] < Lawouach_> The blog post is pretty empty but the links are interesting
[07:53] < MS-> This is interesting: http://blog.isotoma.com/2008/05/some_thoughts_on_concurrency.html
[07:53] < MS-> secondary knock off link
[07:53] < MS-> However doesn't tell me anything I don't already know
[07:53] < MS-> However it's conclusion is
[07:53] < MS-> "use erlang"
[07:53] < Lawouach_> well it's the koolaid these days
[07:53] < MS-> Which is bizarre, since it assumes everyone *can* use erlang
[07:54] < Lawouach_> I think what it means is apply Erlang's principles of "let it fail".
[07:54] < Lawouach_> Well that's the way I approach those "use erlang" posts
[07:55] < Lawouach_> Erlang as a language is not developer friendly and oddly enough nobody takes that into account
[07:55] < Lawouach_> But I enjoy many ideas behind Erlang
[07:56] < MS-> Indeed - the non-developer friend thing is the bit that concerns me.
[07:56] < MS-> That said, kamaelia's had a convergent evolution, but from the imperative rather than functional side of things
[07:57] < MS-> If there's something missing that would make sense, it should get cherry picked at some point.
[07:57] < MS-> (much like the STM code)
[07:57] < Lawouach_> Indeed
[07:58] < Lawouach_> I think that's why I like language independant message technology like XMPP or AMQP
[07:58] < MS-> Yep - makes a lot of sense
[07:58] < MS-> The odd thing is the number of people who haven't made the cross-link to mashups
[07:58] < Lawouach_> The debate around Erlang is so noisy these days that it's quite hard to truly understand its merits and drawbacks.
[07:59] < MS-> My guess is that the best way to view Erlang is the same way to view Smalltalk of the late 70s
[07:59] < MS-> Smalltalk wasn't the first OO language after all (Simula 67 had that distinction 10 years before)
[08:00] < MS-> and Erlang isn't the first concurrent language (Occam probably holds that honour 20 years ago)
[08:00] < Lawouach_> Well that's the reason I agree with you when you say one should use Erlang only when it fits the job description. Mashing up languages is much harder than technologies like XMPP
[08:00] < MS-> But they're popularising an approach
[08:00] < Lawouach_> True
[08:01] < MS-> The problem for me is that language choice has to take context into account, and part of that is "who are we going to get maintaining the code".
[08:01] < MS-> And it's a very big part of it
[08:02] < MS-> The amusing part of this, is alot of the descriptions of functionality either match what kamaelia does today, or things I would like it to do, and would be a natural fit for it to do
[08:04] < MS-> anyhow, I should be travelling to the office rather than chatting/reading. biab :)
[08:04] *** MS- has parted #kamaelia
[08:05] *** mhrd-afk is now known as mhrd
[08:09] *** zaheerm has joined #kamaelia
[08:10] < mhrd> auto doc generation has identified a missing colon (syntax error) in Parsing: Kamaelia.Internet.UDP line 243 ... I'll fix trunk directly
[08:22] < Lawouach_> so mhrd, that is your super power!
[08:22] < Lawouach_> man I'm jealous.
[08:22] < mhrd> ?
[08:22] *** mhrd confused
[08:23] < Lawouach_> The man who can fix trunk repositories directly :)
[08:23] < mhrd> aaah. well, not quite directly. you know what I mean :)
[08:23] < Lawouach_> heehee :)
[08:23] < Lawouach_> Don't be shy
[08:24] *** mhrd still waiting for "svn update" to complete following last night's quite significant rejig of /branches
[08:24] < Lawouach_> And considering how fast sourceforge... you might wait quite a while
[08:25] < mhrd> *sometimes* its due to rubbishy proxies at our end
[08:25] *** PJ_Coudert has joined #kamaelia
[08:25] < Lawouach_> that too. I know the feeling
[08:29] < mhrd> curious, it didn't fail in UDP, which did it fail in then
[08:30] < mhrd> ah, tcpclient
[08:35] *** orphans has joined #kamaelia
[08:48] *** Chong- has joined #kamaelia
[08:51] < Chong-> MS-: just leave a message, I maybe a little late for our meeting, but I should be able to come around 12:30.
[08:52] < Chong-> In addition, I have checked in the newer codes including relation file parser and pink/ blue rendering.
[08:53] < Chong-> Please check them when you get time. See you later.
[08:53] *** Chong- has parted #kamaelia
[09:25] *** Uraeus has joined #kamaelia
[09:27] *** vmlemon_ has joined #kamaelia
[09:39] < Lawouach_> http://blogs.teamb.com/craigstuntz/2008/05/19/37819
[09:39] < Lawouach_> >>> Like Armstrong, I cannot think of another system that works quite this way.
[09:39] < Lawouach_> I can think of Kamaelia :)
[09:40] < vmlemon_> The sequencer thing?
[09:42] < Lawouach_> Not really
[09:43] < Lawouach_> I should've been clearer.
[09:43] < Lawouach_> I can think of Axon.
[09:43] < Lawouach_> Axon linking mechanisms could reproduce what he describes in that article.
[09:57] *** Davbo has joined #kamaelia
[10:00] *** MS- has joined #kamaelia
[10:00] < MS-> Morning
[10:00] < MS-> alarm here
[10:00] < MS-> arrgh
[10:01] < Davbo> Morning MS-
[10:05] < Davbo> off-topic but cool: http://bitnami.org/
[10:13] < Davbo> let me know when you're ready MS-
[10:22] *** MS- back
[10:22] < MS-> well that was exciting. Unfortunately we were let back in the building.
[10:22] < MS-> Hopefully they'll do it again in about 2-3 hours
[10:22] < Davbo> What happened?
[10:23] < MS-> Fire alarm went off, lots of people left building, stood around for a little while, came back, came back in
[10:23] < MS-> Dunno if a test or not
[10:23] < Davbo> lol, I would hope so. Otherwise you're in a burning building
[10:23] < Davbo> ;-)
[10:24] < MS-> Indeed :)
[10:25] < Davbo> You okay for me to ask a few questions?
[10:26] < MS-> indeed.
[10:26] < Davbo> I was looking at how you got the text displayer and text box talking
[10:27] < Davbo> http://yeoldeclue.com/cgi-bin/blog/blog.cgi?rm=viewpost&nodeid=1205626569
[10:27] < Davbo> essentially that's piping output of text box into the displayer
[10:27] < Davbo> i think
[10:28] < Davbo> using this "pprocess.Exchange()"
[10:28] < MS-> Underlying it, yes
[10:28] < MS-> The syntactic sugar handles that for you.
[10:28] < MS-> Actually what happens under the hood is this
[10:28] < MS-> a pipe is created
[10:29] < MS-> the process then forks
[10:29] < MS-> the processes then exchange data across the pipe
[10:29] < Davbo> hmm right
[10:29] < MS-> The data is pickled before being sen
[10:29] < MS-> t
[10:29] < MS-> which means most objects, except generators can be sent across
[10:29] < Davbo> So I shouldn't need to handle interactions at pprocess.Exchange() ?
[10:29] < MS-> Correct
[10:29] < Davbo> oh right
[10:30] < MS-> The only two things you should need to worry about are using ProcessPipeline(...) and
[10:30] < MS-> ProcessGraphline(...)
[10:30] < Davbo> Oh I see!
[10:31] < MS-> the only caveat to remember is NOT to activate the components before putting them in the list of things
[10:31] < MS-> so no doing this
[10:31] < Davbo> So I can make a Graphline to handle it then put that into the ProcessPipeline?
[10:31] < MS-> X = MyComponent()
[10:31] < MS-> X.activate()
[10:31] < MS-> ProcessPipeline( ...,X,...)
[10:31] < MS-> yes
[10:32] < mhrd> MS- : which is a caveat that would apply to ordinary Pipelines and Graphlines too anyway (it might still work, but certainly isn't guaranteed to)
[10:32] < MS-> mhrd: Yep
[10:32] < Davbo> Oh I see,
[10:32] < mhrd> ok, auto docs rebuild seems to have passed this time.
[10:33] < MS-> It's intended to be a drop in replacement for Pipeline & Graphline when you decide "hmm, those things could be on different CPUs"
[10:33] < Davbo> Yeah
[10:34] < MS-> FWIW, I was expecting it to be harder
[10:34] < Davbo> You think a Graphline is the best way to do it?
[10:34] < MS-> i think the best way to do things initially would be to change magnadoodle to output events about what its doing
[10:34] < MS-> and then also to change it such that it handles taking the same events as commands
[10:34] < MS-> and then piping the output of one to the other
[10:35] < MS-> (have it just one way initially)
[10:35] < Davbo> Ah I see hmm
[10:35] < MS-> (if you do it both ways initially you'll hit looping issues)
[10:35] < MS-> The idea of course here to be getting used to the idea of how to can intercept messages and pass them around
[10:35] < Davbo> Why did you expect it to be more difficult?
[10:36] < MS-> because the networking case is more difficult mainly
[10:36] < MS-> I hadn't expected the code to just work. The ProcessPipeline code does require changes though to the scheduler
[10:36] < MS-> for example
[10:36] < MS-> to enable zapping of the display
[10:37] < MS-> zapping of the list of processes after forking
[10:37] < MS-> rather
[10:37] < MS-> list of active components rather
[10:37] < mhrd> "zapping"?
[10:37] < MS-> mhrd: It's caused by the scenario
[10:38] < MS-> Pipeline( Textbox()...
[10:38] < MS-> ProcessPipeline(
[10:38] < MS-> Textdisplayer()
[10:38] < MS-> ).run()
[10:38] < MS-> If you don't have process pipeline zap the components in the scheduler
[10:38] < MS-> the second window ends up with both a textbox and textdisplay
[10:38] *** vmlemon_ has joined #kamaelia
[10:38] < MS-> the the first with just a textbox
[10:38] < MS-> rather than a textbox in one and textdisplayer in the other
[10:38] < Davbo> Hmm, not sure i follow
[10:39] < MS-> due to timing of .activate() calls
[10:39] < MS-> Davbo: You don't need to be able to at this stage :)
[10:39] < MS-> Just answering mhrd's question :)
[10:39] < Davbo> alright
[10:39] < MS-> The idea is that it should be transparent and "just work"
[10:39] < MS-> :)
[10:39] < Davbo> phone brb
[10:41] *** MS- needs to nip of briefly too
[10:41] < MS-> back in a sec
[10:44] < Davbo> back
[10:45] < Davbo> I was thinking of using a Backlane actually MS-, I thought that would make it easier to add more windows / was more intuitive
[10:45] < Davbo> when changes happen on one window they publish to the backlane and others read from it
[10:47] < mhrd> that approach works well for the whiteboard ...
[10:48] < mhrd> which also does some additional stuff to make sure that anything that publishes and subscribes to the whiteboard doesn't receive stuff it sent out (the looping issue MS- mentions)
[10:48] < Davbo> Ah
[10:48] < mhrd> MS- : re. zapping - aaah yes, kinda helps I suspect :-)
[10:50] < Davbo> door brb
[10:53] < MS-> (back)
[10:54] < MS-> Backplane is definitely a good idea, however initially I would do point to point.
[10:54] *** mhrd agrees - step by step
[10:55] < Davbo> what do you mean by getting it to output events MS-?
[10:55] < MS-> eg
[10:55] < MS-> if event.button == 3:
[10:55] < MS-> self.oldpos = None
[10:55] < MS-> self.drawBG()
[10:55] < MS-> self.blitToSurface()
[10:55] < MS-> would also be
[10:56] < MS-> if event.button == 3:
[10:56] < MS-> self.oldpos = None
[10:56] < MS-> self.drawBG()
[10:56] < MS-> self.blitToSurface()
[10:56] < MS-> self.send("clear", "outbox")
[10:56] < Davbo> ah thought so
[10:56] < Davbo> so you kinda trick them to think a user event has happened on that MagnaDoodle
[10:56] < MS-> pygame.draw.circle(self.display, (0,0,0), self.oldpos, rad, 0)
[10:56] < MS-> self.send(["circle", (0,0,0), self.oldpos, rad] , "outbox")
[10:57] < MS-> You'll rapidly find that you need to standardise the messages you're sending
[10:57] < Davbo> uh-huh
[10:57] < MS-> cf "clear" vs ["circle", (0,0,0), self.oldpos, rad]
[10:57] < MS-> Essentially
[10:57] < MS-> What you should end up doing is decoupling handing user events from painting the surface
[10:58] < Davbo> Yeah I see what you mean
[10:58] < MS-> Which will lead you down the starting point of the structure of the whiteboard
[10:58] < Davbo> So a user event triggers something (say) onto a backlane then they read off that
[10:58] < MS-> Later, yes
[10:58] < Davbo> Yeah
[10:58] < MS-> It's very easy to jump ahead :)
[10:59] < Davbo> (it's more intuitive to think of the Backlane for me)
[10:59] < Davbo> Yeah I can do that I think :)
[10:59] < mhrd> Davbo: you can view these as natural steps to check bits work before plugging them into a backplane
[10:59] < Davbo> Yeah
[11:00] < Davbo> I can see how it could cause problems
[11:00] < mhrd> and a little functionality/change ... test ... commit ... repeat :)
[11:00] < MS-> it's important to remember that this is a learning exercise, rather than the main project. Learning how this can work :)
[11:00] < Davbo> indeed :)
[11:00] < MS-> Once you've got this though, it should be clear that you could replace the keypresses with messages from outside as well
[11:01] < MS-> (eg currently doing circle & line from "c", "l", to be extended to also include from buttons you could click on
[11:01] < Davbo> Yeah
[11:02] < MS-> Or if you're willing to find something to train and code up, even from a speech recognition system
[11:02] < Davbo> I can see how that would be pretty easy if you standardise what they actually write out
[11:02] < MS-> Though I would suggest that's out of scope
[11:02] < MS-> Yep
[11:03] < MS-> My concrete suggestion - given you do have a basic multiwindow thing going
[11:04] < MS-> would be to define 1 to be "window 1", the other to be "window 2"
[11:04] < MS-> and have the drawing events on window 1 copied to window 2 (as per this discussion) for window 2 to be able to copy.
[11:05] < MS-> That then gives you a basic control protocol.
[11:05] < Davbo> Yeah
[11:05] < mhrd> then you can start moving the two windows 'further apart' in some logical sense :)
[11:05] < Davbo> right
[11:05] < MS-> my suggestion isn't really quite that, it's more "OK, then add a third window"
[11:06] < MS-> which has tools on it - initially just 3 buttons
[11:06] < MS-> circle, line, clear
[11:06] < Davbo> uh-huh. I was going to try that too :-)
[11:06] < MS-> since you have that basic functionality, and that should then control window 1
[11:07] < MS-> which should of course also ripple over to window 2
[11:07] < MS-> in this scenario
[11:07] < MS-> The next step, which should be harder
[11:08] < MS-> is to figure out how to have the 3rd window - the control pallette - only control *one* of the windows
[11:08] < MS-> And to stop events from window 1 being passed to window 2
[11:08] < Davbo> Hmm right
[11:08] < MS-> At that point I'd add in changing colour
[11:09] < MS-> The reason of course is at that point you have a very basic paint program with 2 independent windows, but a single common control
[11:10] < Davbo> Yeah I can see some potential ways of doing that
[11:10] < Davbo> Do you think it would be wise to start from scratch for my project or to start from this and extend it?
[11:11] < MS-> I would continue to extend the code you already have for these learning exercises, but the overall goal was to be able to extend/modify the whiteboard IIRC
[11:11] < MS-> So these things explore the problem space in a restricted/toy example first
[11:11] < MS-> before moving over to the bigger/full system.
[11:11] < MS-> That's my take anyway
[11:12] < Davbo> Yeah
[11:12] < Davbo> I think that's wise
[11:12] < Davbo> I can move more to Whiteboards approach to it also, ie. like Matt said with the Backlane
[11:12] < MS-> Defensive coding practices really. The key thing you get by doing this is something you can go back to and explore
[11:12] < MS-> yep
[11:14] < MS-> OK, summarising
[11:14] < MS-> Make window 2 slave events from window 1
[11:14] < MS-> Then add a third window to control window 1 - circle, line, clear
[11:15] < MS-> The break slaving of window 1 & 2, but keep events going from the third control window to window 1 & 2
[11:15] < MS-> Then change it such that events are only sent to one or the other
[11:15] < MS-> Then add in colour
[11:16] < Davbo> Yeah
[11:16] < MS-> (eg just one extra colour is fine - red & blue vs just black)
[11:16] < Davbo> Sounds good to me
[11:16] < MS-> beyond that, I would suggested re-enabling communication between 1 & 2 and make it bidirectional & such that you can toggle it on/off
[11:17] < Davbo> This alright to be what I'm working on while i have exams? - You happy with this progression?
[11:17] < MS-> So that "the blue one can draw on window 1 and see it appear (in blue) in window 2"
[11:17] < MS-> and vice versa
[11:17] < MS-> After that, the next logical step is 3 windows, since that then naturally screams "backplane"
[11:17] < MS-> :)
[11:18] < Davbo> Yeah, I can see that :)
[11:18] < MS-> That's probably /more/ than enough for the week though
[11:18] < MS-> but definitely moves you down the route of understanding the issues the whiteboard deals with, and also the issues your project will need to deal with
[11:18] < Davbo> Good
[11:19] < MS-> When do you exams finish again?
[11:19] < MS-> next friday ?
[11:19] < MS-> Or week after?
[11:19] < Davbo> 6/6
[11:19] < MS-> Week after, OK
[11:19] < Davbo> Yeah week after
[11:19] < MS-> I'll bear that in mind
[11:20] < Davbo> I literally have nothing after that though
[11:20] < Davbo> So should be full speed ahead :)
[11:21] < MS-> Cool
[11:22] < MS-> I think the stuff we've just covered may take more than a week since you're getting up to speed with things. For me/matt it'd be less than a day I guess, since we're used to the codebase. However, if things are quicker, we can re-evaluate.
[11:23] < MS-> If they're longer, then I'm not too worried, but would like to think about tasks which make it easier to explore the whiteboard code
[11:23] *** zaheerm has joined #kamaelia
[11:23] < MS-> So that you're at least familiar with it so that you can hit the floor running with it
[11:24] < MS-> (thinking ahead)
[11:24] < Davbo> Alright, I think it might take longer than a week. Alot of Kamaelia is getting used to the tools which already exist and what's suitable to use where
[11:24] < MS-> Yep
[11:25] < MS-> I'm deliberately suggesting more than I would expect to fit in a week at this stage BTW
[11:25] < MS-> largely because it makes forward planning easier next time
[11:25] < MS-> Since your todo list on thursday will be clear, making review and planning next week simple :)
[11:26] < Davbo> nah it's fine. I think we've laid out a good plan, now i can see where we're going with this
[11:26] < MS-> me too
[11:26] < MS-> my aim would also be that either before or immediately after your exams are done is that you'll be directing these "next steps"/"plans"
[11:27] < MS-> But I do recognise at this stage you need gudiance due to not knowing what's inside things :)
[11:27] < MS-> OK, do you have any more questions for me?
[11:27] < Davbo> Humm nah I'm good now
[11:28] < MS-> Excellent :-)
[11:28] < Davbo> I'll go and post this Contributer Agreement
[11:28] < MS-> Fantastic :)
[11:28] < MS-> That's 2 I have now from this year
[11:28] < Davbo> Thanks MS- :-)
[11:28] < MS-> one from pablo (the one via BH did get here in the end) and one from chong
[11:28] < MS-> you're welcome :)
[11:30] *** MS- notes Chong must've forgotten about our meeting at 12 today
[11:34] < orphans> MS-, Chong-> MS-: just leave a message, I maybe a little late for our meeting, but I should be able to come around 12:30.
[11:34] < orphans> < Chong-> In addition, I have checked in the newer codes including relation file parser and pink/ blue rendering.
[11:34] < orphans> < Chong-> Please check them when you get time. See you later.
[11:34] < orphans> @9.30 ish
[11:34] < MS-> Ah, I missed that
[11:35] < MS-> orphans: Much appreciated :)
[11:35] < orphans> sorry, forgot to ping you it
[11:35] < orphans> np
[11:35] < MS-> should've checked log
[11:35] < MS-> OK, I *really* need to go get food since I have another meeting (not kamaelia) in 25 minutes
[11:36] < orphans> you want me to tell Chong that you won't be around?
[11:36] *** orphans is stuck here revising :)
[11:43] *** Chong- has joined #kamaelia
[11:43] < Chong-> Hi MS-
[11:45] < orphans> Chong: [12:35] < MS-> OK, I *really* need to go get food since I have another meeting (not kamaelia) in 25 minutes
[11:46] *** mhrd wonders if we need to rull orphans functionality into kamaeliabot ;-)
[11:46] < mhrd> s/rull/roll/
[11:46] < Chong-> orphans: I see. Thank you very much for your remind orphans.
[11:46] < orphans> Chong-, np
[11:46] < Chong-> and thanks for reminding MS- of my message :-)
[11:47] < orphans> mhrd, but then what would I do to procrastinate?
[11:47] < Chong-> hehe
[11:49] < Davbo> back later
[11:50] < Chong-> cya, Davbo.
[12:11] < Lawouach_> back
[12:11] < Lawouach_> did I miss anything? :)
[12:28] < MS-> Yay, conf call over. I can come back to life :)
[12:28] < MS-> Nice and sunny though
[12:29] < Chong-> Hi MS-, sorry for being late
[12:30] < MS-> Chong-: np
[12:30] < Chong-> thanks :-)
[12:30] < Chong-> Have you got opportunity to check my code?
[12:30] < MS-> Just taking a look now
[12:31] < Chong-> cool
[12:31] *** MS- waits for an update to complete
[12:32] < MS-> OK, RelationTopologyViewer.py runs
[12:33] < Chong-> good
[12:33] < MS-> OK, your parser is a single shot component?
[12:35] < Chong-> I think no
[12:35] < MS-> for node in nodes:
[12:35] < MS-> self.send(node, "outbox")
[12:35] < MS-> for link in links:
[12:35] < MS-> self.send(link, "outbox")
[12:35] < MS-> yield 1
[12:35] < MS-> yield 1
[12:35] < MS-> self.send(self.shutdown_mess,"signal")
[12:35] < MS-> Kinda implies it is
[12:35] < MS-> ie it couldn't be used interactively
[12:36] < Davbo> back - posted the Contributor Agreement MS-
[12:36] < MS-> (not an issue, more an observation)
[12:36] < MS-> Davbo: ta
[12:36] < MS-> OK,key thing is that works
[12:36] < Chong-> yes if you mean that.
[12:37] < Chong-> I copy it from your ERparsing :-)
[12:37] < MS-> ./RelationColorTopologyViewer.py Files/RelationGender.re works as well
[12:38] < MS-> Chong-: Yes, i noticed the similarity
[12:38] < MS-> It's good to cite sources of data
[12:38] < MS-> and code
[12:38] < Chong-> I think I receive message one by one but send messages one shot.
[12:38] < Chong-> I will :-)
[12:38] < MS-> Blue links and pink links?
[12:39] < MS-> What's the differentiation?
[12:40] < Chong-> For example, dad is blue node, the link to him is pink;
[12:40] < MS-> ./RelationColorTopologyViewer.py Files/RelationAttribute.re doesn't run yet. I'm guessing this is expected behaviour
[12:40] < Chong-> mum is pink node, the link to her is blue;
[12:40] < MS-> Do link colour is opposite to node colour
[12:40] < Chong-> yes.
[12:41] < MS-> k
[12:41] < MS-> OK, what are your planned next steps?
[12:41] < Chong-> Any suggestions to improve?
[12:41] < MS-> i'd rather hear your next planned steps first :)
[12:42] < Chong-> np
[12:42] < Chong-> Next one should be able to use customable pictures
[12:42] < MS-> as per Files/RelationAttribute.re ?
[12:43] < Chong-> yes.
[12:43] < Chong-> I think it probably needs to extend / modify TopologyViewer
[12:43] < Chong-> Add one data field, such as
[12:43] < MS-> If you think you need to do that, you'll have to make a branch for doing that
[12:43] < Chong-> ADD NODE ID POS PARTICLE DATA
[12:44] < Chong-> What do you think?
[12:44] < MS-> I think you probably ought to investigate whether you can work withing the current system first
[12:45] < Chong-> send the photo path or other information through DATA
[12:45] < MS-> I suspect you make be able to see a different way of deal with it
[12:45] < MS-> and then be able to decide if it make sense
[12:46] < MS-> After all, you may be able to do something interesting with particle type
[12:46] < Chong-> yes. it is hightly customale wtih particle type
[12:46] < MS-> After all, at present it does this:
[12:47] < MS-> if self.particleTypes.has_key(msg[5]):
[12:47] < MS-> ptype = self.particleTypes[msg[5]]
[12:47] < MS-> ...
[12:47] < MS-> That may be reasonable to deal with differently
[12:47] < MS-> After all if particle type could be defined as
[12:48] < Chong-> yes, I have understood how it works. but I cannot figure out one way to send the path of photos to particle
[12:48] < MS-> person(gender=female,picture=Files/Filename.png)
[12:48] < MS-> That would work OK
[12:48] < MS-> Since then yes, the topology visualiser code would need extending, but it would be a minor change
[12:49] < MS-> However, I suspect that that is suboptimal
[12:49] < MS-> since it causes problems for filenames with spaces in
[12:49] < Chong-> yes
[12:50] < MS-> I think my suggestion would be to try something that you can get to work, and then seek feedback as to whether it makes sense
[12:50] < MS-> (on the list)
[12:51] < MS-> But either way, yes, I think you'll need to modify the topology visualiser
[12:51] < Chong-> cool
[12:51] < MS-> I think my suggestion there though would be "add a new command"
[12:51] < MS-> rather than "change the existing one"
[12:51] < MS-> yes, base the new on on the old if you like, but make a change that leaves current behaviour intact.
[12:52] < Chong-> got it.
[12:52] < MS-> Since you'll be working on a branch, you won't be affecting anyone
[12:52] < MS-> I would suggest calling it private_CL_Scratch
[12:53] < MS-> since then when you're done, you can delete the branch if you like
[12:53] < MS-> and reinstate if necessary another time
[12:53] < Chong-> great.
[12:54] < Chong-> one question, just now, do you suggest to embed the informaiton into the NODEID?
[12:56] < MS-> I think, if you're creating your own branch, I think you should probably think about extending things as you indicate above
[12:56] < MS-> rather than (to put it badly) abusing existing functionality
[12:56] < MS-> After all, the nodeid is used when you want to add/delete things, make/break links
[12:56] < MS-> It may also be worth considering this:
[12:57] < MS-> if I already have a node, how do I update it?
[12:57] < MS-> eg to change it's label
[12:57] < MS-> Or in the case of an image, to change it's picture etc
[12:58] < MS-> or even to the extent of changing the particle type completely
[12:58] < Chong-> I see.
[12:59] < MS-> That last one may actually have a real implication for some of the things you have planned
[12:59] < MS-> given the hierarchical stuff
[12:59] < MS-> Having the ability to support (even badly) changing the node type
[12:59] < MS-> would open up interesting options.
[13:00] < Chong-> yes. interesting.
[13:00] < MS-> As a result, maybe thinking in terms of
[13:00] < MS-> you may wish to think in terms of the ability to do things like "ADD ASSET"
[13:00] < MS-> or perhaps allowing particle types to define extra commands
[13:01] < MS-> To make this sort of thing easier to retrofit in future
[13:02] < Chong-> yes. That would be cool.
[13:02] < MS-> It'd perhaps make it easier to retarget in more interesting ways
[13:03] < MS-> Beyond that, I think probably the next step after this would be to look at hierarchies.
[13:03] < MS-> how you would expand a node to show it's sub-graph, and how you would shrink it again back down
[13:04] < MS-> Pipeline( Pipeline( A, B) , Pipeline( C, D) ) - springs to mind as a basic thing there
[13:04] < MS-> if you're able to update the node inplace, it'd probably make that easier to do
[13:05] *** Trun has joined #kamaelia
[13:05] < Chong-> yes.
[13:05] < MS-> OK Chong- - if you have more questions, please do send them to the list :0
[13:05] < MS-> :-)
[13:05] < MS-> Trun: hiya
[13:05] < Trun> hi
[13:06] < Chong-> :-)
[13:06] *** Lawouach_ feels like sleeping
[13:06] < MS-> Lawouach_: ditto :-)
[13:06] < Lawouach_> well let's listen to Pulp then. Might wake me up :)
[13:06] < MS-> heh
[13:07] < Chong-> one question, can one kamaelia component accept inputs (the same inbox) from two components, say both FileAdaptor and ConsoleReader?
[13:07] < MS-> yes
[13:07] < Chong-> that's cool
[13:07] < MS-> You cannot guarantee *any* ordering
[13:07] < MS-> since it will be determined by the scheduler
[13:08] < MS-> If I discover that people do start relying on ordering, I reserve the right to change the scheduler to import from random
[13:08] < MS-> :-D
[13:08] < Lawouach_> Note that it can't allow the opposite on the other hand.
[13:08] < Chong-> hehe'
[13:08] < MS-> indeed
[13:09] < Lawouach_> You can't link one outbox to more than one inboxes
[13:09] < Lawouach_> You may use specific components for tha
[13:09] < Lawouach_> I commonly use Backplanes
[13:09] < MS-> ditto
[13:09] < MS-> makes debugging simpler too :)
[13:09] < Lawouach_> Very handy to more loosely link components. Make the code a little harder to follow though.
[13:09] < Lawouach_> Yes
[13:09] < Lawouach_> But readability is less easy I find.
[13:09] < Chong-> yes.
[13:10] < MS-> Yes, they can drive down readability
[13:10] < MS-> OK, Chong- you happy for now then? Plenty to move forward with?
[13:11] < MS-> I'll be expecting you to be driving this forward from next week really
[13:11] < MS-> just as an fyi :)
[13:11] < Chong-> yes, You have solved a lot of questions for me and at the same time raised more questions for me :-)
[13:11] < MS-> Cool
[13:12] < MS-> Trun: OK, you ready ?
[13:13] < Davbo> It's like a meeting relay-race
[13:13] *** MS- has been wondering about the code you've produced and how to do it
[13:13] < MS-> Davbo: Yeah, work can sometimes be like that. If you spread them out over a week, it becomes insane since you end up in one long meeting
[13:13] < MS-> It's why I try to a) keep them short & focussed
[13:14] < Chong-> just before Trun responses, I will ask another question :-)
[13:14] < MS-> b) compress them into one part of the week
[13:14] < Chong-> About the hierarchy one, will we still do it under pygame or under opengl?
[13:14] < MS-> Chong-: Can you please put it on the list
[13:14] < Chong-> np
[13:14] < MS-> Trun: can you join #kamaelia-mentor please ?
[13:15] < MS-> ie /join #kamaelia-mentor
[13:15] < MS-> (whilst waiting, Chong- yes, for now everything in pygame - get used to doing everything in one place first, before shifting the rug under yourself)
[13:16] < Chong-> np
[13:16] < MS-> Incidentally these mentor time meetings aren't really meetings for meetings sake, it's time I'm specifically putting aside to ensue you've got undivided attention
[13:30] < Davbo> Humm using grep could I go through some folders and look for files with no extensions and give them .mp3 ?
[13:47] < Lawouach_> Davbo: ?
[13:49] *** vmlemon_ has joined #kamaelia
[13:50] < vmlemon_> Hi
[13:56] < Davbo> Lawouach_?
[13:57] *** vmlemon_ has joined #kamaelia
[14:00] < Lawouach_> What were you saying before about grep and mp3?
[14:00] < mhrd> davbo: find . ! -name "*.*" -type f -exec echo Found {} \;
[14:01] < Lawouach_> < Davbo> Humm using grep could I go through some folders and look for files with no extensions and give them .mp3 ?
[14:01] < Davbo> Oh I have a bunch of files with no extension which are actually MP3's wanted to just find and append their extension with a script
[14:01] < Lawouach_> python -c "import glob;print glob.glob('*.mp3')"
[14:02] < MS-> http://132.185.142.2/Kamaelia/ - the results of Pablo's KamPlanet code
[14:02] < Lawouach_> to get them and you can easily change the name by extending that line
[14:02] < Lawouach_> mhrd: nerd :)
[14:02] < MS-> Currently breaks with Lawouach_'s blog/feed
[14:02] *** vmlemon_ wonders where he can get a cheap 1GB RS-MMC card...
[14:02] < Lawouach_> with the RSS feed? weird since it works with Planet Python
[14:03] < mhrd> Lawouach_ : thanks :)
[14:04] < MS-> Lawouach_: I think it's more due to assumptions in Trun's code rather than your feed
[14:04] < Davbo> Thanks mhrd & Lawouach_
[14:04] < mhrd> vmlemon_ 7dayshop.com ?
[14:04] < MS-> your feed is rather more ... rich .. that the others :)
[14:04] < vmlemon_> Thanks, I'll look when I get home
[14:04] < Lawouach_> hu hu
[14:05] < Lawouach_> Trun: what library do you use to parse the feeds?
[14:05] < MS-> Lawouach_: I'm certain the issue is with KamPlanet (BTW)
[14:05] < Davbo> lol Lawouach_, poor mhrd ;-)
[14:05] < MS-> (15:04:28) Trun: >>> parsed = feedparser.parse("http://www.defuze.org/feeds/index.rss2")
[14:05] < MS-> (15:04:39) Trun: >>> print parsed.entries[0].keys()
[14:05] < MS-> (15:04:43) Trun: ['license', 'slash_comments', 'wfw_comment', 'subtitle', 'author', 'links', 'tags', 'title', 'updated', 'comments', 'id', 'content', 'guidislink', 'title_detail', 'link', 'wfw_commentrss', 'author_detail', 'updated_parsed']
[14:06] < MS-> (15:05:55) Trun: no, but it's a KamPlanet problem
[14:06] < MS-> (15:06:08) Trun: that feed does not provide summary, but it provides content
[14:06] < MS-> (15:06:34) Trun: I should check for both, but up to date all what I had played with was with a blog at localhost and pablo.ordunya.com
[14:06] < Davbo> Very cool stuff Trun
[14:06] < Lawouach_> I see
[14:07] < MS-> (15:07:20) Trun: there are still several things regarding encodings, characters, etc. that I'm not happy with and I have not tested with many blogs
[14:07] < MS-> (15:07:50) Trun: but for the moment I wanted to focus in kamaelia itself
[14:07] < MS-> Which makes sense :)
[14:08] < MS-> Anyhow, as an exercise of building up something useful as a test case for testing, it makes sense
[14:09] *** MS- moves discussion back onto here instead
[14:09] < MS-> (moved off channel due to channel noise earlier :) )
[14:09] < Trun> I was reading, yeah, I was just playing around with kamaelia
[14:10] < Trun> I'm sure there are lots of problems with KamPlanet and feeds :-)
[14:10] < Trun> it currently does not even finish itself :-D
[14:10] < MS-> Davbo: find|grep -v mp3$|while read filename; do mv $filename $filename.mp3; done
[14:10] < Davbo> Hah, thanks MS-
[14:11] < MS-> Actually that'll rename directories too
[14:11] < MS-> find -type f|grep -v mp3$|while read filename; do mv $filename $filename.mp3; done
[14:11] < MS-> is better
[14:11] *** MS- thinks trun needs a better irc client than mibbit ...
[14:13] < Trun> noh, I'm here, mibbit is working today :-D
[14:13] < MS-> OK, I need to bring that meeting to a close
[14:13] < MS-> sicne this is just too slow for me
[14:13] < MS-> Can you forward me via email what you're planning on doing next, and hope to achieve in the next week
[14:14] < Trun> ok
[14:14] < MS-> I think you also need to start thinking about how testing applies in these situations
[14:14] < MS-> KamPlanet's not a bad one
[14:14] < MS-> but also need to think about systems involving services - eg the selector & PygameDisplay
[14:15] < MS-> (in terms of very specific components)
[14:15] < Trun> ok, I'll check them
[14:15] < MS-> Also, there is /Code/Python/Kamaelia/Tests
[14:15] < MS-> and also /Tests
[14:15] < MS-> so it needs to take those into account as well
[14:16] < MS-> The tests in the /Tests (the axon ones) are actually intended to be sufficient for producing documentation as well
[14:16] < MS-> by using the docstring for tests in unittest in an imaginative way
[14:16] < MS-> However, clearly there's issues of black box testing and also black box testing
[14:17] < MS-> then for things like TCPClient & ConnectedSocketAdaptor
[14:17] < MS-> the key things the tests ought to be able to check is that the socket library is being used correctly
[14:17] < Trun> aham
[14:17] < MS-> which implies a means of mocking socket and using those as exemplars
[14:17] < MS-> i'll drop this by mail though
[14:18] < MS-> I *do* think that KamPlanet is a good idea though
[14:18] < MS-> since it has a variety of different styles it has to deal with
[14:18] < MS-> and are all testworthy :)
[14:18] < MS-> So I'd continue with getting that "complete" :)
[14:18] < Trun> ok
[14:19] < MS-> A few docs on it would be useful too - but I'm very inclined to keep that running
[14:19] < MS-> and have it as a live datasource on the new site
[14:19] < MS-> when the new site goes live
[14:19] < MS-> :-)
[14:19] < Trun> cool :-)
[14:19] < Trun> I'll think about all this and send you an e-mail tonight with the TODO for the next week
[14:20] < Trun> is that ok?
[14:20] < MS-> Sounds good.
[14:20] < MS-> I'd also extend it to be a general "todo in the next 3 weeks, with expectation of < these> being priority"
[14:20] < MS-> since that's really what I'm encouraging people to do
[14:21] < MS-> Also, since then it would provide a nice path into projects
[14:21] < Trun> oh, ok
[14:21] < MS-> Just a thought :)
[14:22] < Trun> ok then :-)
[14:22] *** Lawouach_ can hear Ben Stiller in Dodgeball saying "Do it!" 
[14:22] < Lawouach_> :D
[14:23] *** vmlemon_ started using Remember The Milk last night, after signing up a while ago...
[14:24] < Davbo> :)
[14:24] < vmlemon_> I've probably used the WAP frontend more than the regular one, that said
[14:26] < vmlemon_> A slight annoyance is when I add an item with a date like "Later this week", it seems to disappear until I look in the Inbox
[14:28] < vmlemon_> Although it's probably a "feature"
[14:30] < Davbo> Never used the WAP frontend actually
[14:31] < vmlemon_> It's rather handy, though
[14:32] < vmlemon_> (If I can remember to Remember The Milk at least once a day, that is ;))
[14:34] < Davbo> :)
[14:34] < Davbo> That's the thing, as with anything like this. It's only good if you use it like every day
[14:38] *** Davbo has joined #kamaelia
[15:03] *** MS- goes afk
[15:04] < mhrd> wap.nationalrail.co.uk is lovely as is tflwap.gov.uk
[15:08] < Lawouach_> vmlemon: http://www.defuze.org/archives/18-XMPP,-AtomPub-and-microblogging.html
[15:08] < Lawouach_> That might interest you
[15:08] < Lawouach_> That could interest j_baker too :)
[15:12] *** vmlemon_ has joined #kamaelia
[15:14] < Lawouach_> alright I have no clue which vmlemon_ I just talked to :)
[15:16] < vmlemon_> Hah, I lost connectivity just then :|
[15:17] < Lawouach_> so I was saying
[15:17] < Lawouach_> vmlemon: http://www.defuze.org/archives/18-XMPP,-AtomPub-and-microblogging.html
[15:17] < Lawouach_> Might interest you :)
[15:17] < vmlemon_> Aah
[15:18] < vmlemon_> I'll look soon, but it sounds interesting from the URL
[15:29] < vmlemon_> kamaeliabot: dance
[15:29] Reply: does the macarena
[15:42] *** j_baker has joined #kamaelia
[15:42] < Davbo> Twitter is XMPP isn't it Lawouach_?
[15:42] < Davbo> I can update that from sms/jabber etc
[15:45] < Lawouach_> I think yes. i'm not inventing anything new ;)
[15:45] < Lawouach_> Just having fun :)
[15:47] < Davbo> oh i know, it's really cool imo
[15:47] < Davbo> Just saying that I think it's really useful
[15:48] < Lawouach_> :)
[16:14] < Lawouach> back
[16:29] *** vmlemon_ has joined #kamaelia
[17:43] *** Davbo has joined #kamaelia
[18:04] < Davbo> Argh, you gotta hate it when things are named with an acronym in mind - Music Orchestration Systems in Algorithmic Research Technology (MOSART)
[18:05] < vmlemon_> Looks like they thought of an acronym, and then tried to bend words around it in the hope that it makes some form of sense
[18:06] < Davbo> Exactly.
[18:41] *** mhrd is now known as mhrd-afk
[18:53] *** vmlemon_ is trying to think of a name for the rabbit at http://openlina.org/forum/viewtopic.php?f=34&t=69&p=357
[20:07] *** MS- has joined #kamaelia
[20:08] < MS-> evening
[20:08] *** MS- changed the topic to Next weekly meeting 4pm 22nd May 2008 (first of restart) | Don't ask to ask, just ask (channel is logged: http://yeoldeclue.com/logs/ )
[20:08] *** MS- changed the topic to Next weekly meeting 4pm 22nd May 2008 | Don't ask to ask, just ask (channel is logged: http://yeoldeclue.com/logs/ )
[20:10] *** mhrd-home has joined #kamaelia
[20:10] < mhrd-home> evening all
[20:10] < MS-> evening
[20:11] < vmlemon_> Hi mhrd-home
[20:12] < MS-> question (to anyone): What do you get if you type:
[20:12] < MS-> "nslookup edit.kamaelia.org"
[20:12] < MS-> on a console
[20:12] < Davbo> bash: nslookup: command not found
[20:12] < Davbo> :)
[20:13] < Davbo> Glad I could help!
[20:13] < Davbo> ;-)
[20:13] < mhrd-home> nmatteh@r44115:~$ nslookup edit.kamaelia.org
[20:13] < mhrd-home> Server: 192.168.1.1
[20:13] < mhrd-home> Address: 192.168.1.1#53
[20:13] < mhrd-home> Non-authoritative answer:
[20:13] < mhrd-home> Name: edit.kamaelia.org
[20:13] < mhrd-home> Address: 132.185.142.2
[20:13] < MS-> Or host edit.kamaelia.org
[20:13] < MS-> or ping edit.kamaelia.org
[20:13] < MS-> mhrd-home: Cheers
[20:13] < MS-> Looks like it's propogated somewhere then :-)
[20:13] < mhrd-home> host (unsurprisingly) returns the same address
[20:14] < vmlemon_> nslookup edit.kamaelia.org
[20:14] < vmlemon_> Server: 193.35.133.10
[20:14] < vmlemon_> Address: 193.35.133.10#53
[20:14] < vmlemon_> Non-authoritative answer:
[20:14] < vmlemon_> Name: edit.kamaelia.org
[20:14] < vmlemon_> Address: 132.185.142.2
[20:14] < vmlemon_> Here
[20:14] < MS-> Cool, visible in at least 2 locations then
[20:14] < mhrd-home> oh d*s% my rice just boiled over :)
[20:14] < vmlemon_> Not sure why Server: is different for me
[20:14] < MS-> That's your local DNS server
[20:14] < Davbo> PING edit.kamaelia.org (132.185.142.2) 56(84) bytes of data.
[20:14] < Davbo> 64 bytes from kamaelia.kw.bbc.co.uk (132.185.142.2): icmp_seq=1 ttl=55 time=39.6 ms
[20:15] < Davbo> FYI
[20:15] < MS-> ta
[20:16] < Davbo> What you doing with that MS-?
[20:17] < vmlemon_> Aah
[20:17] < Davbo> is that the server that's only visible from outside the BBC network?
[20:17] < MS-> Yes, but I've found a work around
[20:17] < vmlemon_> Coral Cache/Tor?
[20:17] < vmlemon_> Or more subtle?
[20:17] < MS-> If the DNS service is one that the BBC network can see, then it can do a DNS lookup, find the address and the the BBC web proxies understand how to get to it
[20:18] < MS-> It's a little convoluted
[20:18] < j_baker> MS-: when you get a chance, I was wondering if you could give me some advice on a component I'm designing.
[20:18] < vmlemon_> Can't you cheat and use something like OpenDNS?
[20:18] < MS-> vmlemon_: For who?
[20:19] < vmlemon_> For testing the server that's only externally visible
[20:19] < MS-> No that wouldn't solve the problem
[20:19] < MS-> (if open dns does what I think it does)
[20:19] *** Davbo uses OpenDNS
[20:20] < MS-> But that's a client side "solution" yes ?
[20:21] *** vmlemon_ was going to say that it might not provide access to the BBC internal proxies, assuming that they're only accessible via a certain DNS name (and that they can't be accessed otherwise by using the IP address)...
[20:21] < vmlemon_> *using just the IP address
[20:22] < MS-> I don't understand what you're getting at
[20:22] < MS-> 132.185.142.2 is accessible from outside the BBC - which is fine, that's what it's there fore
[20:22] < MS-> However, inside the BBC, we have to use a proxy to access anything outside
[20:23] < MS-> There's a special rule in the bbc.pac autoconfig to say "if it's this network range, yes, do actually use the proxy"
[20:23] < MS-> However, the real oddity is that because there's a firewall between the inside and outside, there is a nasty re-use of ip addresses.
[20:23] < vmlemon_> Ouch
[20:23] < MS-> ie there's a 132.185.142.2 inside *and* outside
[20:24] < MS-> So if you have a DNS glue record
[20:24] < MS-> that says ns0.kamaelia.org is 132.185.142.2
[20:25] < MS-> and have this rule:
[20:25] < MS-> ;; AUTHORITY SECTION:
[20:25] < MS-> kamaelia.org. 42755 IN NS ns1.kamaelia.org.
[20:25] < MS-> kamaelia.org. 42755 IN NS ns0.kamaelia.org.
[20:25] < MS-> Then outside the BBC, the world will do the right thing, and be able to see the server.
[20:25] < MS-> However inside, DNS lookups will go horribly wrong
[20:25] < MS-> Meaning that the client never gets redirected through the proxy to the server
[20:26] < MS-> Hosting the DNS serving *outside* that network completely
[20:26] < MS-> kamaelia:/etc # host ns0.kamaelia.org
[20:26] < MS-> ns0.kamaelia.org has address 212.56.88.101
[20:26] < MS-> Bypasses that problem
[20:27] < Davbo> Sounds a bit messy
[20:27] < MS-> yeah
[20:27] < Davbo> but hey, if it works.
[20:27] < Davbo> What you planning to use it for?
[20:28] < MS-> I think the hint is in the name used ;)
[20:28] < MS-> edit.kamaelia.org
[20:28] < MS-> OK,
[20:28] < vmlemon_> Wiki editing interface?
[20:28] *** MS- goes back to fiddling with stuff
[20:28] < j_baker> Today's fish is trout ala creme, please enjoy your meal.
[20:31] < MS-> j_baker: I'd really appreciate whatever question you have to be sent to the list
[20:31] < MS-> I've got a really odd headache at present
[20:32] < j_baker> np :)
[20:37] *** MS- watches BSG instead
[20:37] *** MS- is now known as ms-away
[21:01] *** bcarlyon|laptop has joined #kamaelia
[21:13] *** Lawouach has joined #kamaelia
[21:22] < vmlemon_> o.O [22:19] < alanc> the marketing guys didn't like me when they asked if we could have a screensaver show off our eco-responsibility somehow and I responded the best way to do that was to rename "blank screen" to "eco-responsible blank screen"
[21:27] < bcarlyon|laptop> lol
[21:41] < Davbo> What word would you use to describe a feature you had in the design stages but was missing in the Implementation?
[21:41] < vmlemon_> Hmm, not regression
[21:41] < Davbo> I'm writing this presentation but I don't want to sound too harsh on the people which programmed it
[21:41] < Davbo> ie. They will be in the room lol
[21:42] < vmlemon_> "A cut feature"? "A feature that didn't quite make the release"?
[21:42] < vmlemon_> Can't think of a single word at the moment, though
[21:42] < Davbo> humm, thanks anyway :)
[21:43] < Davbo> I have a list of "Functionality" then i want a list of Cut Features without being so harsh lol
[21:45] *** vmlemon_ wonders if Microsoft maintains lists of "disfunctionality" for their products ;)
[21:49] < Davbo> Well whatever i put down is better than what it was before
[21:49] < Davbo> (one list titled "Does" and one titled "Doesn't")
[21:49] < Davbo> :|
[21:50] < vmlemon_> It's better than nothing
[21:50] < vmlemon_> "Coming Soon..."?
[21:51] < Davbo> "Missing features"
[21:51] < Davbo> that'll do.
[21:52] < Davbo> Well nobody is gonna be adding anything vmlemon_ so they really are missing
[21:52] < vmlemon_> OK
[21:53] < Davbo> Thanks for helping :)
[21:53] < vmlemon_> No problem
[22:31] < vmlemon_> Night
[22:49] < mhrd-home> night
[22:49] *** mhrd-home has parted #kamaelia
[23:31] < Davbo> Night all.