[00:15] *** ms- sends mail regarding that branch
[00:26] < ms-> OK, that may be it for the week. (hopefully not, but being realistic about the coming 5 days - I'll have something higher priority)
[00:26] < ms-> cya
[00:26] *** ms- has parted #kamaelia
[00:35] *** ms- has joined #kamaelia
[00:36] *** ms- changed the topic to Update and review the release Wiki here: http://edit.kamaelia.org/ReleaseJune2008 u/p : wiki/wiki | Next weekly meeting 4pm 12th June 2008 | Don't ask to ask, just ask (channel is logged: http://yeoldeclue.com/logs/ )
[00:36] *** ms- changed the topic to Claim a branch for review and (maybe) merge! :-) | Update and review the release Wiki here: http://edit.kamaelia.org/ReleaseJune2008 u/p : wiki/wiki | Next weekly meeting 4pm 12th June 2008 | Don't ask to ask, just ask (channel is logged: http://yeoldeclue.com/logs/ )
[01:04] *** sadrul has joined #kamaelia
[06:32] *** vmlemon__ has joined #kamaelia
[06:32] *** vmlemon__ is now known as vmlemon_
[06:42] *** Lawouach_ has joined #kamaelia
[06:42] < Lawouach_> morning folks
[06:50] *** vmlemon__ has joined #kamaelia
[06:50] *** vmlemon__ is now known as vmlemon_
[06:51] < vmlemon_> Hi
[07:24] *** bcarlyon|ubuntu has joined #kamaelia
[07:55] *** vmlemon__ has joined #kamaelia
[07:55] *** vmlemon__ is now known as vmlemon_
[08:15] *** orphans has joined #kamaelia
[08:22] *** bcarlyon|laptop has joined #kamaelia
[08:30] *** ms- has parted #kamaelia
[08:56] < Lawouach_> http://blog.ianbicking.org/2008/06/08/which-way/ < -- what a pointless question :/
[08:56] < Lawouach_> If the World could fit only two boxes it'd be way too simple :)
[09:00] < orphans> morning Lawouach_
[09:00] < Lawouach_> morning mate
[09:01] < orphans> how's it going?
[09:01] < Lawouach_> You're luck the French game ends before our meeting this evening :)
[09:01] < Lawouach_> Going well
[09:01] < Lawouach_> I wrote a large chunk of code this weekend
[09:02] < orphans> cool cool. Mm, might have to watch the france game
[09:03] < orphans> I like that when I google france euro 2008 it tells me when the match is and who's playing
[09:03] < Lawouach_> :)
[09:04] < Lawouach_> I hope we're gonna kick those Italians during the thir game
[09:04] < orphans> :)
[09:05] < orphans> I don't really know who to support this year
[09:07] < Lawouach_> France man. Well unless you want me to make your life a misery :)
[09:09] < orphans> sounds like a done deal :)
[09:09] < Lawouach_> :)
[09:10] < orphans> wow, for the first time in my life the team I'm supporting have a chance of winning a major football tournament!
[09:10] < orphans> it's a strange feeling...
[09:11] *** Davbo has joined #kamaelia
[09:12] < Lawouach_> :)
[09:15] < Davbo> Salut Lawouach_
[09:15] < Davbo> Hi all
[09:17] < Lawouach_> salut Davbo
[09:21] < orphans> hey Davbo
[09:22] *** vmlemon__ has joined #kamaelia
[09:22] *** vmlemon__ is now known as vmlemon_
[09:29] *** Uraeus has joined #kamaelia
[09:57] *** MS- has joined #kamaelia
[09:58] < MS-> morning
[09:58] < orphans> morning MS-
[09:59] < MS-> orphans: Thanks for offering to merge the STM code
[09:59] < MS-> (or review for merge - just as useful)
[09:59] *** MS- will wait for j_baker to be awake before saying thanks there
[09:59] < MS-> :)
[10:00] < Lawouach_> MS-: I apologize for not giving you any feedback on that quick word page you ported to the wiki
[10:00] < Lawouach_> I just forgot :/
[10:00] < MS-> No problem :)
[10:01] < orphans> MS-, no probs - looks interesting :)
[10:01] < MS-> I asked, but that doesn't guarantee an answer :)
[10:01] < MS-> been around long enough to know a) people forget even if they don't want to b) life gets in the way
[10:01] < MS-> For me b) is going to be happening somewhat this week until after friday
[10:02] < MS-> (part of the reason for trying to get so much out of private_MPS_Scratch yesterday)
[10:02] < Davbo> Hi MS-
[10:03] < Davbo> I think i'll review the logger for you
[10:03] < Davbo> shouldn't take long
[10:03] < MS-> ta :)
[10:03] < Davbo> was the IRC stuff already merged?
[10:03] < MS-> Indeed - it just works really. The only foible is a) I think it needs *some* documentation
[10:04] < Davbo> Want me to write some stuff for it ?
[10:04] < MS-> b) it needs specific directories for logging to exist
[10:04] < MS-> You can do - just note down what you need to do to get it working
[10:04] < Davbo> I'll check code see if i can put in some friendly exceptions for the directories
[10:05] < MS-> It's useful that coming from you because you'll hit the problems fresh and probably list everything as a result
[10:05] < MS-> And yes, the IRC code has been merged
[10:05] < MS-> :)
[10:06] < Davbo> well we all know the logger is reasonably robust anyway :-)
[10:06] *** Davbo pokes kamaeliabot
[10:07] < bcarlyon|laptop> I just saw tweet for this http://tinyurl.com/6qvmd2 A peta flop computer made from stuff designed for the PS3, well the Cell Chip.
[10:07] < bcarlyon|laptop> How is everyone btw?
[10:08] < orphans> "It will be installed at a US government laboratory later this year where it will monitor the US nuclear stockpile." - I don't need a supercomputer to do that! They've got enough to wipe me off the face of the earth a fair few times over. Job done :)
[10:09] < Davbo> Yeah, read about that on Engadget, Roadrunner is for military use anyway heh.
[10:10] < Davbo> MS-: Can I get a Slider widget out of PyGame?
[10:11] < MS-> Davbo: You could easily make one
[10:12] < MS-> I think at present my suggestion for this week aside from anything else is to start writing a full feature list of what you're intending to put into your tool at this stage
[10:12] < MS-> Or would like
[10:12] < MS-> So that you can then say done, done, done and restructure etc
[10:13] < Davbo> oh on that note I started the wishlist
[10:13] < MS-> cool
[10:13] < Davbo> http://edit.kamaelia.org/Developers/Projects/KamaeliaPaint
[10:13] < MS-> you can always extend it
[10:13] *** bcarlyon|laptop has joined #kamaelia
[10:13] < MS-> But you'll probably also pick out specific things you need - like sliders, colour selectors
[10:14] < MS-> fading, layers etc
[10:14] < MS-> whatever :)
[10:14] < Davbo> well it's just a start from things I could remember after reading your email
[10:14] *** MS- clicks
[10:14] *** MS- adds lens flare
[10:15] < bcarlyon|laptop> Hello again, random laptop crash.
[10:15] < Davbo> ;-)
[10:19] < Davbo> Could you point me in the right direction for making a slider with pygame at all MS-, it's quite different to what i'm used to
[10:22] < orphans> Davbo, you might want to look at my the Button component - it's a nice easy start to doing pygame stuff
[10:22] < orphans> s/my//
[10:23] < orphans> also might want to look at this: http://www.imitationpickles.org/pgu/wiki/index
[10:23] < orphans> somewhere on the wishlist is a port of some of the utils there - I'd definitely be interested in getting some of the UI stuff over
[10:24] < orphans> perhaps a joint task for the summer :)
[10:24] < Davbo> Ah
[10:24] < Davbo> Yeah
[10:24] *** bcarlyon|laptop has joined #kamaelia
[10:27] < MS-> Davbo: yes, please look at pyame :)
[10:27] < Lawouach> back home
[10:27] < MS-> sorry, the pygame.org website
[10:27] < Lawouach> Yeah it was b) :)
[10:27] < MS-> heh
[10:27] < MS-> :)
[10:27] < MS-> Davbo: you may also want to take a look at the slider in the opengl code
[10:27] < MS-> a slide is just moving a box
[10:28] < MS-> Oh, on that front - you could look at orphans' XYPad
[10:28] < MS-> :)
[10:28] < MS-> Since you only need one direction, but it could be interesting/useful
[10:28] *** orphans finds a nice revision, cause it's got a bit more complex since
[10:28] < MS-> Actually that could be really nice - you could have an RGB colour cube with 3 squares:
[10:28] < MS-> RG GB RB
[10:29] < MS-> (instead of XY)
[10:29] < Davbo> umm
[10:29] *** MS- wonders if anyone else has seen a colour cube since Photon Paint...
[10:30] < Davbo> I can honestly say I've never seen one heh
[10:30] < orphans> MS-, saw one in my Digital Imaging course
[10:30] < Davbo> http://www.navgen.com/nova/cube_fullsize.jpg
[10:30] < Davbo> That sort of thing?
[10:30] < Davbo> I've seen those
[10:31] < MS-> Ah, *ish*
[10:31] < MS-> simpler
[10:31] < MS-> consider the 3 visible sufaces
[10:31] < MS-> If you draw a dot on each of them and draw a line straight through
[10:32] < MS-> looking at that picture...
[10:32] < MS-> red is bottom left
[10:32] < MS-> blue is top
[10:32] < MS-> green is bottom right
[10:32] < MS-> so left square is RB
[10:32] < MS-> right square is GB
[10:33] < MS-> top square is RG
[10:33] < MS-> in terms of Axes
[10:33] < MS-> A position in RGB space can therefore be represent by 3 dots - one on each of those planes
[10:33] < MS-> Suggestion: if you don't understand, a) pretend you do
[10:34] < Davbo> Sorry, I see what you mean yeah
[10:34] < MS-> Cool
[10:34] < Davbo> I was looking at another colour cube and it was mesmerising
[10:34] < Davbo> :-)
[10:34] < MS-> heh
[10:34] < MS-> b) play with 3 of orphan's XYpads
[10:35] < Davbo> Righty
[10:35] < MS-> to do it *right* you really need to show the "slices" through the cube & update them when someone moves a pad
[10:35] < MS-> But as a starting point I'd just suggest XYPads controlling a thing that just shows the colour
[10:36] < Davbo> hmm
[10:36] < MS-> Can make picking the right colour quite nice :)
[10:37] < MS-> aha
[10:37] *** Chong- has joined #kamaelia
[10:37] < MS-> http://www.softpedia.com/progScreenshots/Color-Cube-Screenshot-75780.html
[10:38] < Davbo> Ah
[10:38] < Davbo> so, just the faces of the cube?
[10:38] < MS-> Essentially, yes
[10:39] < MS-> Each face gives you 2 values
[10:39] < MS-> RG GB orr RB
[10:39] < Davbo> yeah
[10:39] < MS-> You need to synchronise them, but that's a detail - especially considering the XYPad already does that - you just need to link 3 rather than 2
[10:40] < Davbo> I need to look at this XYPad before i see how i can apply it i'm afraid
[10:40] < orphans> ahh, yeah, you'll need synchronisation - in that case use trunk Davbo
[10:40] < MS-> orphans: Has done screen cast
[10:41] < MS-> Davbo: The alternative is find or write 3 sliders :)
[10:41] < orphans> there'll be a bit more doc for it later today describing the synchronisation stuff
[10:41] < MS-> It's no harder than a magnadoodle
[10:41] < MS-> simpler really
[10:42] < MS-> Davbo: http://www.vimeo.com/1127967 :)
[10:42] < Davbo> thanks MS-,
[10:42] < MS-> yw
[10:43] < MS-> you may however find it easier to consider merging one of the existing pygame UI's
[10:43] < MS-> There's a couple, and there'd be ongoing useful benefits from doing that
[10:43] < MS-> not least it may make your life easier
[10:43] < MS-> (providing options :-) )
[10:43] < Davbo> Sounds like that might be useful for orphans if I start on that too
[10:45] < Davbo> watching the screencast
[10:45] *** vmlemon__ has joined #kamaelia
[10:45] *** vmlemon__ is now known as vmlemon_
[10:46] < Davbo> hehe looks familiar to MagnaDoodle
[10:46] < Davbo> s/familiar/similar
[10:47] < Davbo> Very different protocols but hey :-)
[10:48] < vmlemon_> Hi
[10:50] < MS-> Indeed. Lots of code is really similar like that
[10:51] < MS-> a slider that you want would be identical to the XYPad, except X or Y would be fixed
[10:51] < MS-> unless you wanted diagonal sliders - which I would recommend against
[10:52] < Davbo> the XYPad looks like a good way to do it
[10:55] < MS-> It's an easy win. It's definitely worth looking at other toolkits as well, and considering whether you'd want to componentise them of course. (Ala tkinter etc)
[10:55] *** vmlemon_ never knew that RISC OS used the BSD TCP/IPv4 stack...
[10:57] < Davbo> I'd like to know what things you'd like componentised orphans, from the GUI engines like: http://ocemp.sourceforge.net/gui.html and http://www.imitationpickles.org/pgu/wiki/index
[10:58] *** MS- idly notes that playing with these comes highly recommended as well to find out what they're like
[10:59] < MS-> ocemp is richer, pgu seems "nicer" (which is incredibly hard to justify)
[10:59] < MS-> Lawouach_: yes pointless q
[10:59] *** MS- notes 2 minutes silence
[10:59] < Lawouach> Those reminds me of ClanLib (well ClanLib has no Python bindings though)
[11:01] < Davbo> What would your suggestion be over ocemp and pgu
[11:01] < Davbo> MS-*
[11:01] < Davbo> I think it's worth getting some of these things over to Kamaelia
[11:03] < orphans> Davbo, I'm not entirely sure atm. For definite things like radio buttons/dropdown menus.
[11:03] < Lawouach> It's also interesting to note that although quite different in scope pygame+ocemp/pgu are getting close to a PyQt. Notably when considering you can perfectly access OpenGL with Qt and thei phonon engine offers a nice audio layer.
[11:03] < orphans> Lawouach, how easily do you think something like pyqt would fit in?
[11:04] *** MS- would like the paint tool, where possible to be pygame based almost exclusively - meaning ocemp, pgu or homebrew (as at present)
[11:04] < Lawouach> Well first of all I'm not saying one ought to drop one for the other. I like PyQt because it's a really well tested framework. Solid fast and well maintained.
[11:04] < MS-> the advantage of homebrew is the modelessness
[11:05] < MS-> PyQT should fit trivially in with kamaelia IMO
[11:05] < Davbo> Yeah I was planning on sticking with PyGame
[11:06] < orphans> mm, that's interesting. I thought it'd be a lot of work
[11:06] < MS-> orphans: The best integration plays to the strengths
[11:07] < MS-> You let pygame be pygame (we just replace pygame.display.flip() and how you get a display surface and where you get events from really)
[11:07] < MS-> You let PyQT be PyQT etc
[11:08] < Lawouach> back to work
[11:08] < Lawouach> see you in a bit
[11:09] < MS-> Same for tkinter - much of that still looks like tkinter etc
[11:10] < orphans> yeah
[11:12] < orphans> do you think something like pyqt would be good for Jam? I can see upsides and downsides
[11:12] < Davbo> back, sorry about that.
[11:12] < MS-> orphans: I don't no. Personally the reason I like pygame is because it just works everywhere I use it.
[11:13] < MS-> I'm *tempted* to get a new GP2X after my old one was bricked, and they upgraded it to have a stylus for example
[11:13] < Davbo> MS-: Plan of action- bring the slider across from ocemp/pgu then decide what to do after that
[11:13] < MS-> (kamaelia runs happily on it for example)
[11:13] < orphans> ok, cool. pygame has the happy benefit of being done already too :)
[11:13] < MS-> Which would mean painting using a stylus on a GP2X, but the downside is it has *zero* connectivity
[11:14] *** orphans goes to get lunch
[11:14] < MS-> It's your project though, and ease of deployment and options all play a part with these things
[11:15] < MS-> Eg Davbo I'd personally be tempted to just use XYPad & extend that or just create a slider - to go with the other pygame widgets
[11:15] < MS-> But as the saying goes - if you always do what you've always done, you'll always get what you've always got
[11:16] < orphans> realistically the benefits I see are having a nice big widget set available (which I won't use much of, but for the future), and simple styling support
[11:16] < orphans> both of which are nice, but not showstoppers
[11:16] < MS-> Yes
[11:16] < MS-> BUT that doesn't necessarily mean its good
[11:16] < MS-> The fact that I can put a whiteboard or magnadoodle or whatever over playing video
[11:17] < MS-> and still have both work because I can set one transparent and they're modeless (ie events aren't captured by just one widget) can be really useful
[11:18] < MS-> Interestingly, the open gl code has the same benefit as well - events pass through to all components in a line of sight
[11:18] < Davbo> http://gp2x.co.uk/indexgp2x.html
[11:18] < Davbo> Work well with whiteboard?
[11:19] < orphans> ok, well, pygame for now unless I think of any really convincing reasons to change :)
[11:19] *** orphans really goes to get lunch :)
[11:24] < Davbo> Thanks MS-, now you've made me want a GP2X
[11:24] < Davbo> :-)
[11:34] < Lawouach_> back
[11:35] < MS-> heh
[11:35] < MS-> Davbo: I'd like an Acer Aspire One, but I doubt I'm getting one
[11:36] < Lawouach_> orphans: Although I'm a huge fan of PyQt (currently using it at work) I won't push down that line. Regarding your project itself it'd be better for now to keep pygame so that you don't have to waste time learning PyQt and integrating it with K.
[11:36] *** MS- recieves Jason's contributer agreement
[11:36] *** MS- notes he also likes PyQT :)
[11:36] < MS-> It's nice to work with
[11:37] < MS-> (I have a wysiwyg standard alone tabbed editor that spits out/displays HTML as a personal notepad)
[11:37] < MS-> s/standard/stand/
[11:37] < Lawouach_> Before we started your project I was tempted to suggest going for PyQt but since pygame is already well integrated with K. I didn't want you to waste time on framework stuff rather than functionnalities
[11:38] *** vmlemon_ has joined #kamaelia
[11:41] < Lawouach_> Mind you ocemp looks good
[11:41] < vmlemon> Nice to hear that there's a Kamaelia Publish release
[11:45] < MS-> Davbo: You're happy with reviewing kamaelia-logger then?
[11:45] *** MS- updates releasepage
[11:45] < Davbo> Yeah
[11:46] < Davbo> I'll do that now actually
[11:46] < MS-> ta :)
[11:46] < MS-> It defaults to testing on #kamaelia-test BTW
[11:47] < Davbo> right, ty
[11:47] < MS-> configured by /etc/kamaelia_logger.conf
[11:47] < MS-> etc
[11:47] < Davbo> and freenode i presume
[11:47] < Davbo> kk
[11:47] < MS-> yep
[11:55] *** MS- wanders off
[11:55] *** MS- is now known as ms-afk
[12:20] < ms-afk> 527 files on /trunk modified since last release
[12:21] < ms-afk> (all changes reviewed)
[12:22] < ms-afk> 281 of those are .py files in kamaelia.*
[12:22] < ms-afk> 20 in Axon.Axon
[12:23] < ms-afk> 78 examples
[12:25] < ms-afk> The diff alone is 1.7MB in size ...
[12:25] < ms-afk> *really* have to do releases more often
[12:26] < Davbo> :D
[12:26] < Davbo> that's something to be proud of
[12:27] < Davbo> Good job ms-afk, since a lot of it is from your scratch
[12:27] < Lawouach_> :)
[12:27] < vmlemon> o.O http://flickr.com/photos/vmlemon/2482100946/
[12:28] < Lawouach_> release more often would be appreciated but I've found that, for my usage, I haven't had to fix much of 0.5 in order to work
[12:28] < Lawouach_> A bit of the HTTP components and the SSL support were the major stuff.
[12:28] < Lawouach_> Of course I don't use any of the media stuff so...
[12:32] < Lawouach_> BTW, there is a trailing print statement in HTTPClient that'd need to be removed. Don't think creating a whole branch would make any sense.
[12:32] < Lawouach_> What would you rather me do ms-afk ?
[12:32] < Davbo> Could be a good idea to release at the end of summer perhaps
[12:32] < Davbo> with our apps in there :-)
[12:39] < Lawouach_> :)
[13:30] < Davbo> KamaeliaLogger seems good
[13:31] < Davbo> ah, found a problem
[13:49] *** ms-afk is now known as ms-
[13:49] < ms-> (back)
[13:49] < ms-> Lawouach_: Send a diff/patch against either /tags/Kamaelia-0.5.0 or against /trunk to the list ?
[13:50] < ms-> Or it it's really obvious, tell us where/what?
[13:50] < ms-> I'm guessing it should just be commented out?
[13:51] *** vmlemon__ has joined #kamaelia
[13:51] *** vmlemon__ is now known as vmlemon_
[13:53] < Davbo> wasn't a big problem ms-, it just wasn't sleeping at any point so using 100% cpu
[13:53] < ms-> Really?
[13:53] < Davbo> fixed it now
[13:54] < ms-> oh yes, so it does
[13:54] < Davbo> Good job we spotted that now
[13:54] < Davbo> :)
[13:55] < ms-> (Never really noticed on the machine I run the logger on)
[13:55] < Davbo> Courtesy of my fans being extremely loud when it runs at 100%
[13:56] < ms-> I see
[13:56] < Davbo> It's fine now though ms-, I can write README if you like
[13:56] < ms-> probably useful to fix then :-)
[13:56] < ms-> Please do
[13:56] < ms-> I take it you made the changes on the branch ?
[13:56] < Davbo> any format for it you want me to follow?
[13:56] < ms-> (I make a habit of asking obvious q's)
[13:56] < Davbo> oh sorry not ci'd
[13:57] < ms-> Format. Plain short. What, Why, How, Where, etc
[13:57] < Davbo> Sorry I had to wrestle getting Kate running as root for some reason
[13:57] < ms-> Assume the reader doesn't know anything about Kamaelia (or perhaps even care)
[13:58] < ms-> Unpack
[13:58] < ms-> Install
[13:58] < ms-> Configure
[13:58] < ms-> Run
[13:58] < ms-> What output?
[13:59] < ms-> Something similar to : http://edit.kamaelia.org/KamaeliaGrey is probably what you want
[13:59] < Davbo> Can't do OSX i'm afraid, i'll leave that blank
[13:59] < ms-> That's fine
[13:59] < Davbo> I see you've left something in there for Apple users, i'm sure it's a similar script
[14:00] < ms-> The only guidance on writing is pretend you're writing for someone (specific) you know, who is relatively techie, but doesn't know anything about it
[14:00] < ms-> beyond that: sentences less than 10 words. Paragraphs no more than 5 lines.
[14:01] < ms-> Show what people should expect to do/see, don't just explain
[14:01] < Davbo> Righty
[14:01] < ms-> The actual logger runs on OSX BTW, hence why that's there
[14:01] < ms-> Though it was developed under linux
[14:01] < Davbo> Ah cool.
[14:02] < Davbo> setup.py applies to all anyway
[14:02] < ms-> Config is the same
[14:02] < ms-> setup.py is the same
[14:02] < ms-> the running is just
[14:02] < ms-> /System/Library/StartupItems/KamaeliaLogger/KamaeliaLogger start
[14:02] < ms-> rather than
[14:02] < ms-> /etc/init.d/whatever_it_is start
[14:03] < Davbo> Right, cool
[14:03] < ms-> Chong-: ping
[14:04] < Chong-> here :-)
[14:04] < ms-> any q's (given it's your mentor time?)
[14:04] < ms-> if not, I'd appreciate being able to move on
[14:04] < Chong-> Seeing you are talking, so I have not bothered you;)
[14:05] < Chong-> Can you have a look at my plan in the future a couple of days?
[14:06] < Chong-> 1. Extend links: add text to show the relation, make link colour, arrow and other attributes customable
[14:06] < Lawouach_> ms-: I'll send you a patch this evening
[14:06] < ms-> Lawouach_: ta
[14:06] < Chong-> 2. Modify particle laws to implement bondLength(A,B)=A.radius+B.radius+aValue instead of bondLength(A,B)=aValue
[14:06] < Chong-> 3. Make attributes updatable
[14:07] < Chong-> Any suggestion about the plan or their implementation?
[14:07] < ms-> It's your project - what's your plan?
[14:07] < ms-> the above?
[14:08] < Chong-> yep
[14:08] < Chong-> 1-3
[14:09] < ms-> regarding 2, I already discussed (at length) my suggestion which was "try something, see if it makes sense"
[14:10] < ms-> I'm finding it really hard to understand why this is being made into a major issue
[14:10] < Chong-> So, your suggestion is to to classify them and then define multiple laws for every class?
[14:11] < ms-> I fail to see how you go from
[14:11] < ms-> "try something, see if it makes sense"
[14:11] < ms-> to
[14:11] < ms-> "classify them and then define multiple laws for every class"
[14:11] < Chong-> When the user is able to define the size of pictures/ particles, it would be a problem.
[14:12] < ms-> you said that
[14:12] < ms-> And after discussing it I said "try something"
[14:12] < ms-> I'm not going to do your project for you
[14:12] < ms-> try something, see what works,. what doesn't
[14:12] < ms-> you know, research it, play
[14:13] < ms-> open source is to computer science as chemistry is to physics & maths
[14:13] < Chong-> Ok. I have tried but have not found a good way yet. I will try more :-)
[14:13] < ms-> chemistry == try lots of things & hope it doesn't go wrong or explode in your face
[14:13] < ms-> physics == trying to understand why it won't
[14:13] < ms-> maths == proving that it won't
[14:13] < vmlemon_> Hah
[14:13] < ms-> however the only proof is actually trying it
[14:14] < Chong-> yes. BTW, the metaphor is very classic :-)
[14:16] < Chong-> I think after finish 1-3, I can start hierarchical particles.
[14:16] < Chong-> Do you think the plan makes sense?
[14:17] < ms-> Chong-: you mean of your plan to
[14:17] < ms-> 1. add stuff to make it prettier
[14:17] < ms-> 2. change bonds stuff to make sure its pretty
[14:17] < ms-> 3. make stuff updateable ?
[14:17] < ms-> Seems a reasonable plan
[14:18] < ms-> you'll probably need to do 2 again afterwards
[14:19] < Chong-> yes. For OpenGL version, it needs to modify the physical law again.
[14:19] < ms-> Well, yes, that's a given
[14:20] < Chong-> It seems that you're not happy with the plan :-)
[14:20] < ms-> ?
[14:21] < Chong-> Any suggestions to improve it?
[14:21] *** vmlemon_ wonders if Kamaelia would work on the OLPC
[14:21] < ms-> At this rate I'm going to program kamaeliabot to answer that question
[14:21] < ms-> try something, see what works,. what doesn't
[14:23] < Chong-> Ok. I'll try my best. Thanks for your time.
[14:23] < ms-> It's a suggestion. I made it the other day as well.
[14:24] < ms-> Seems the logical thing to do.
[14:24] < ms-> let me put it this way, for me to evaluate the "best" way (if there is one), it would require me to write the code and find out
[14:25] < ms-> I've actually written something similar before which I've mentioned before which is
[14:25] < ms-> in /Sketches/MPS/Experiments/360/
[14:25] < ms-> But that didn't progress.
[14:25] < ms-> (nor did it need to)
[14:25] < vmlemon_> "Yorkshire Tea" comes to mind, for some reason ;)
[14:26] < Chong-> Now, I am studying the 360 codes :-)
[14:26] < ms-> I'm actually confused as to how this relates to your actual project of writing a 3D visualiser tool, but as a learning exercise it makes sense.
[14:27] < ms-> I would actually rather seem some progress on your proposed project sooner rather than later, but again, as a learning exercise it makes sense
[14:27] < ms-> I'm just not sure it's really a months work.
[14:27] < ms-> (months' full time work)
[14:27] < ms-> (or more actually)
[14:28] < ms-> But again, you know how long it takes you to do something, I don't
[14:28] < ms-> :)
[14:28] < Chong-> I think our initial plan is try to extend the PyGame one, pink/blue, picture, hierarchical work and so on.
[14:29] < ms-> That was a learning exercise
[14:29] < ms-> yep
[14:29] < ms-> but a month and a half on it?
[14:29] < ms-> that's around 1/2 the schedule!
[14:29] < ms-> As a learning exercise it makes sense though
[14:30] < ms-> but you have to bear in mind, that you chose a very targetted project - "Change the Kamaelia topology visualiser to work in full 3D"
[14:30] < ms-> http://code.google.com/soc/2008/bbc/appinfo.html?csaid=C6B31943FE370789
[14:30] < Chong-> Maybe I should not go into too many details.
[14:32] < Chong-> So, is your suggestion to start OpenGL one now?
[14:32] < ms-> Which was heavily based on this description: "
[14:32] < ms-> "Change the topology visualiser to work in full 3D - this would relate to changing the implementation from using the pygame code and replacing it with open GL code. Most of the physics engine would still work. "
[14:32] < ms-> from the project pages
[14:32] < ms-> I'd personally want to see it usable for the other idea on that page:
[14:32] < ms-> 3D Social Network Visualisation tool. This builds on 2 core project ideas. The assumption is that the social network will be embedded in some kind of SQL database,
[14:32] < ms-> which can be extracted by a component. Then, extend topologyVisualiser in the Kamaelia distribution to work in 3D.
[14:33] < ms-> (As I mentioned before)
[14:33] < ms-> No, I'm not making a suggestion to start an OpenGL one this instant
[14:33] < ms-> you have your project plan.
[14:34] < ms-> I would suggest revising it such that you're not spending 5 weeks on stuff not in your proposed project, that all.
[14:34] < ms-> As a learning exercise 2-3 weeks (maybe a little more) at best maybe
[14:35] < Chong-> I see. I will revise my plan to start OpenGL one as soon as possible.
[14:35] < ms-> After all, your initial project schedule was:
[14:35] < ms-> 1. Now – 26 May
[14:35] < ms-> Study the codes of Kamaelia TopologyViewer, PyGameApp, and OpenGL modules, and take notes
[14:35] < ms-> 2. 27 May – 7 Jul
[14:35] < ms-> Start programming and build and test OpenGLApp, TopologyViewer3D, and 3D physics engine module,
[14:36] < ms-> 3. 8 Jul – 11 Aug
[14:36] < ms-> Build and test a Kamaelia interface for SQL database and use it and the3D topology visualiser to show the relationships, and write documentsat the same time; extend other topology-related graph components to 3Dif time allows
[14:36] < ms-> your current schedule bears little relation to that at all
[14:37] < ms-> You can't/shouldn't/ just junk what you're doing. BUT likewise, please bear in mind that your project was accepted because you offered to write 2 pieces of code that I do actually *really* want
[14:37] < ms-> specifically a 3D version of the visualiser and database scraping to visualise
[14:38] < ms-> pablo's was chosen because it is really speculatively possible to really help with making the project cleaner & better and better dev
[14:38] < ms-> Jasons/Davids and Joes chosen on just sheer enthusiasm and clear willingness to take owner ship :)
[14:39] < ms-> I just need you to stay focussed on it being your project, and if you need to do learning exercises, that's good, but bear in mind where you're going
[14:39] < ms-> And if you disagree, tell me :-)
[14:40] < ms-> (nb, I type fast - sometimes that gets mistaken for ranting :), it's not - it's a side effect of having been writing code for 25 years :-) )
[14:40] < Chong-> I totally agree with you. I will finish the components on time as planned.
[14:41] < ms-> Oh, I doubt that. :-) I've yet to meet *anyone* who can reliably gauge how long things will take :-)
[14:41] < ms-> (you could be the first of course :) )
[14:42] < Chong-> :-)
[14:43] < Chong-> It's true I should start the OpenGL one as soon as possible.
[14:45] < Chong-> Please do point out my mistakes during the project as my mentor. :-)
[14:48] < Lawouach_> He does ;)
[14:48] < ms-> I expect it back though too
[14:48] < ms-> and not because anyone's my mentor ;)
[14:48] < Chong-> Lawouach_: :-)
[14:49] < ms-> The biggest risk any project can have is to have any one person believe they are infallible.
[14:49] < Chong-> ms-: That's because you are experienced, it's less likely that we can find your mistakes :-)
[14:49] < ms-> The nice thing about fallibility though is that it's really easy to demostrate
[14:49] < ms-> Hah! I doubt that.
[14:50] < ms-> "what does this button do?"
[14:50] < ms-> *** B O O M ***
[14:50] < ms-> "oh"
[14:50] < ms-> "i didn't know that happened?! OK, better fix that"
[14:50] < Chong-> :D
[14:51] < Davbo> Not really Chong-, right now lots of people are reviewing ms- code to make sure there aren't mistakes, and i'm sure plenty will be found. Nobody writes perfect code :-)
[14:51] < ms-> *everyone* writes bugs
[14:52] < ms-> it's easier to find someone elses than your own
[14:52] < Davbo> exactly
[14:52] < Chong-> Davbo: yes. So I say **less likely**
[14:54] < vmlemon_> If you're Microsoft, you just write all bugs, all of the time ;)
[14:55] < ms-> heh
[14:55] < vmlemon_> erm "features"
[14:56] < ms-> If anyone wants proof I write bugs, ask mhrd-afk and look for VOMIT on the codebase
[14:56] < Lawouach_> VOMIT
[14:56] < Lawouach_> That's one I had never seen :)
[14:58] < vmlemon_> View Only, Might Implode (if) Touched ;)
[14:58] < Chong-> On one hand, the more codes you write, the more experience you get; on the other hand, however, the more bugs you will write.
[14:59] < Chong-> vmlemon_: Might Implode (even if not) Touched :D
[14:59] < vmlemon_> Hah
[15:02] < Lawouach_> Chong-: lots of bugs arise from what is called creeping featurism http://en.wikipedia.org/wiki/Feature_creep
[15:02] < Lawouach_> This not always a problem with the developer per se
[15:02] < ms-> yep
[15:02] < Lawouach_> But with what he/she is asked to do
[15:03] < ms-> The worst example I've seen is in a wiki engine which shall remain nameless which has over 2000 regular expressions applied to every *file* used in a single page view for each pageview
[15:03] *** Chong- is looking at what's creeping featurism
[15:05] < vmlemon_> Ugh, sounds badly designed
[15:06] < ms-> vmlemon_: It wasn't that bad originally - it started off with a dozen or maybe 2 regexes applies in a relatively simple fashion
[15:06] < ms-> (which is a common way to implement a wiki)
[15:07] < ms-> It means that the syntax of many wikis is actually context sensitive and dependent on content
[15:07] < Chong-> Lawouach_: that's very interesting. too much is as bad as not enough.
[15:07] < ms-> which is nice because the same goes for human languages. But for machines it sucks
[15:08] < vmlemon_> I'm sure it gets worse when you add custom markup features
[15:09] *** Chong- thinking if he has made Feature creeping mistakes
[15:11] < ms-> Your code probably isn't big enough yet
[15:11] < Lawouach_> the problem is not so much about quantity as with the fact that you keep adding features regardless of the initial design
[15:11] < ms-> arguably a diff of 1.7M is perhaps a bit of a symptom
[15:11] < ms-> But probably not in K's case
[15:12] < ms-> Chong-: It was the sort of worry that j_baker_ had regarding the ServerCore code
[15:12] < vmlemon_> Hmm, how many lines are in Kamaelia?
[15:13] < ms-> 75285 on /trunk
[15:13] < ms-> (including Examples)
[15:13] < Chong-> ms-: Do ServerCore code have too much functions? :-)
[15:14] < ms-> 7137 on Axon
[15:14] < ms-> Chong-: maybe, maybe not. I don't think so.
[15:14] < ms-> I think it just the minimum necessary to make things work
[15:14] < ms-> SimpleServer didn't
[15:14] < Chong-> I see.
[15:15] < ms-> For certain important classes of server
[15:15] < ms-> though SimpleServer was sufficient for many kinds of server
[15:15] < ms-> 7508 for Axon on my branch
[15:16] < ms-> 75980 for Kamaelia on my branch
[15:16] < ms-> Not really huge in the grand scheme of things
[15:16] < Chong-> That's a good design. For simple application, users can just use SimpleServer for simplicity. for more complex ones, use the other.
[15:17] < Chong-> That's a large number of codes.
[15:17] < Chong-> ms-: how long does it take you to do them?
[15:18] < ms-> I'd say relatively small by commercial standards myself. maybe large for python.
[15:18] < ms-> Chong-: How long is a piece of string?
[15:18] < ms-> I type fast, it helps
[15:18] < Chong-> yes. I can feel :-)
[15:19] < Chong-> ms-: have you used word complete editors?
[15:19] < ms-> I use command completion on the console. No point elsewhere really IMO
[15:20] < Davbo> Some people swear by it, Ruby on Rails programmers seem to love TextMate (well the last time used RoR they did)
[15:21] < Chong-> I see. It may be because you type very fast :-)
[15:21] < Davbo> seems to be more trouble than it's worth IMO
[15:21] < ms-> Davbo: But most people swear at Ruby on Rails programmers :-P
[15:21] < ms-> :)
[15:22] *** bcarlyon|laptop has joined #kamaelia
[15:22] < Davbo> touche
[15:22] < Davbo> :-)
[15:22] *** Davbo couldn't recall how to get the accent on the e for touche
[15:23] < Chong-> it does occupy a lot of system resource
[15:23] < ms-> touché ?
[15:24] < Davbo> I used to remember a key-combo to do that quickly but I've forgotten it
[15:24] < Davbo> oh well
[15:25] < ms-> < alt-gr> and ";" followed by "e"
[15:26] < Davbo> touché
[15:26] < Davbo> Thanks :-)
[15:26] < ms->
[15:26] *** Davbo makes good use of his GSoC mentor
[15:26] < Davbo> ;-)
[15:26] < ms-> heh
[15:27] < ms-> I could be nasty and say it should be kamælia
[15:27] < ms-> technically probably should be
[15:28] < Davbo> Good job you're not pedantic isn't it
[15:29] < Davbo> i'd have probably jumped ship long ago if when i typed "Kamaelia" you responded with "s/Kamaelia/Kamælia" :P
[15:31] < Davbo> Ah!
[15:31] *** Davbo realises why Kamealia bot isn't connecting
[15:31] < Davbo> I was trying another server which required identd
[15:31] < Davbo> Forgot about that
[15:34] *** ms- can't stand pedants really
[15:34] < ms-> a bit of pedantry is eneded when coding I know, but the spirit of pedantry is "it can't change"
[15:35] < Davbo> Pedantry isn't very Pythonic (from my limited experience with Python) that's how it feels IMO
[15:42] < ms-> I'm not sure on that actually
[15:42] < ms-> "import this"
[15:42] < ms-> sometimes encourages it
[15:43] < ms-> "There should be one-- and preferably only one --obvious way to do it."
[15:43] < ms-> which often gets rephrases as "There should be one way to do it"
[15:43] < ms-> which I feel is wrong.
[15:43] < ms-> One obvious way is good
[15:44] < ms-> only one way is bad
[15:44] < ms-> perl by comparison has the axiom "there's more than one way to do it"
[15:44] < ms-> Though intriguingly their personas swap when it comes to packaging
[15:44] < ms-> with perl there is only one obvious way to do it
[15:44] < ms-> Makefile.PL and CPAN compatible
[15:45] < ms-> with python the ethos "there's more than one way to do it" tends to rule
[15:45] < Davbo> heh, yeah
[15:45] < Davbo> I meant purely in that Python is much more dynamic from my previous programming experience
[15:45] < ms-> Ahh, yes
[15:45] < ms-> As a language, unlike (say C/Java)
[15:45] < Davbo> Yeah
[15:47] < Davbo> Pedantry perhaps not the best way to describe that when it comes to programming though, everything is pedantic :-)
[15:47] < Davbo> With Java it's a clear war against the Compiler though hehe
[15:47] < ms-> If it was just the compiler that'd be OK
[15:47] < ms-> but in practice in *its * wars, it has *friends*
[15:54] < Davbo> Finally feeling better now, had horrible tooth ache all day. I think one of my wisdom teeth must be attacking me or something.
[15:55] < ms-> well, beat it back!
[15:56] < ms-> just get the baseball bat out...
[15:56] < Davbo> Paracetamol and a can of Stella (the only thing in the fridge and it's stupidly hot here) seems to have done it :-/
[15:57] < Davbo> All the wrong reasons to drink alcohol
[15:58] < Davbo> It goes out of date next month and I'm from Yorkshire therefore cannot throw away anything *especially* Beer.
[16:03] < ms-> heh
[16:03] < ms-> ok, back later
[16:03] < ms-> cya
[16:03] *** ms- has parted #kamaelia
[16:13] *** vmlemon_ has joined #kamaelia
[16:31] *** vmlemon__ has joined #kamaelia
[16:31] *** vmlemon__ is now known as vmlemon_
[16:53] *** vmlemon_ has joined #kamaelia
[17:19] *** MS- has joined #kamaelia
[17:19] < MS-> back
[17:50] < orphans> MS-, how closely do you want the UDP components api to stick to the original ones?
[17:51] < j_baker_> MS-: fyi I should have the wsgiref issue fixed.
[17:52] < MS-> orphans: The API doesn't *need* to change, so it shouldn't
[17:52] < MS-> a *new* component can do something new
[17:53] < MS-> j_baker_: cool
[17:55] < orphans> ok, cool. I just cringe every time I see localaddr vs receiver_addr
[17:55] < orphans> I'm sure I'm towards the pedantic end of pythoners :)
[18:00] *** bcarlyon|laptop has joined #kamaelia
[18:00] < MS-> I can't spell receiver consistently correctly
[18:01] *** MS- wonders if that's right now
[18:01] < j_baker_> Does anyone already have a py2exe toolchain set up atm?
[18:01] < MS-> I don't even have the platform :)
[18:02] < j_baker_> I just realized I don't either. I removed my winxp install from my mac book.
[18:02] < MS-> Ah
[18:02] < MS-> :)
[18:02] < j_baker_> It's a great thing when I can go without windows for so long without even realizing or needing it.
[18:02] < orphans> j_baker_, I do
[18:04] < j_baker_> Where is it at? I may end up basing something off of it since I'm probably going to have to spend some time getting Windows up and running.
[18:05] < orphans> just on the windows side of my box
[18:06] < j_baker_> I mean in the repository :)
[18:06] < orphans> ahh, no, sorry :)
[18:07] < orphans> fwiw py2exe is pretty simple - it sorts out all the deps automagically, so you just tell it where the script to exe-ise is and it does the rest for you
[18:08] < MS-> checking it in allows automation ...
[18:08] < MS-> I suppose localaddr vs receiver_addr is slightly odd
[18:11] < orphans> mm, quite a lot of different naming all over the shop on them - I guess the more the merrier :)
[18:11] < Lawouach> orphans: ping
[18:11] < orphans> Lawouach, pong
[18:11] < orphans> 0-0?
[18:12] < Lawouach> yeah
[18:12] < Lawouach> boring game
[18:12] < Lawouach> Romani is not a nice team
[18:12] < orphans> mm, not a very good result
[18:12] < j_baker_> orphans, I can get py2exe to work if it's like py2app, so don't worry about it too much if it's not already in the repository (at least not for my sake anyway)
[18:12] < Lawouach> orphans: nope
[18:12] < orphans> j_baker_, ok, cool. If you need anything just ping us and I can give it a go
[18:14] < orphans> Lawouach, ok, so are you cool for the meeting now?
[18:14] < orphans> not too depressed about the game :)
[18:15] < Lawouach> nah :)
[18:15] < Lawouach> yeah go ahead
[18:15] < orphans> ok, cool
[18:16] *** j_baker_ is now known as j_baker
[18:16] < orphans> so from last week - XYPads talk to each other nicely, and I'm almost there with the rewritten UDP components (just need docs copying over and fully testing)
[18:18] < Lawouach> okay
[18:18] < Lawouach> when you say they talk to each other
[18:19] < Lawouach> does it mean they speak Osc?
[18:19] *** MS- will review the UDP components when they're ready
[18:19] *** MS- goes quiet
[18:19] < orphans> yeah, both locally (for music) and between the two of them (for communication)
[18:19] < Lawouach> so they speak via a server or directly?
[18:20] < orphans> via a server
[18:20] < Lawouach> okay cool
[18:21] < Lawouach> what does it mean in regards to your schedule as described here: http://edit.kamaelia.org/Developers/Projects/KamaeliaJam
[18:22] < orphans> I'm winning (kinda) - I'm pretty much at the point I put down to be at by the 22nd June
[18:22] < orphans> but that's with a fair bit of docs to write etc, testing to do, so that's a bit unrealistic
[18:22] < orphans> still, I think a decent amount ahead of schedule :)
[18:23] < Lawouach> I would appreciate that you first revise your schedule accordingly then
[18:23] < Lawouach> For tomorrow so that I can review it
[18:23] < orphans> ok, cool. I will do
[18:23] < Lawouach> When I mean tomorrow I don't mean by 8am :)
[18:24] < orphans> yup
[18:24] < Lawouach> okay
[18:25] < Lawouach> I had a question regarding all this :)
[18:25] < orphans> yup
[18:26] < Lawouach> Currently the sound you produce are fairly random and noisy, is there a plan for something nicer to hear? :)
[18:26] < orphans> yeah - it'll come kinda later on though
[18:26] < Lawouach> okay
[18:26] < orphans> when the step sequencer and piano roll are done it'll make sound a lot closer to real music
[18:26] < Lawouach> that's fair
[18:27] < Lawouach> was just curious :)
[18:27] < orphans> it's a fair question :)
[18:27] < Lawouach> okay, so in a nutshell what do you plan on doing this week?
[18:27] < orphans> I want to spend a day or so getting everything in order - docs, tests etc
[18:28] < Lawouach> alright
[18:28] < orphans> then look into packaging a bit more thoroughly - try and get a linux, win, mac (possibly) package together so I know I can do it when I need to
[18:29] < orphans> I'm not so sure how long that'll take, but with a fair wind I might make it to starting to write the code so I can have more than two clients at the same time
[18:30] < Lawouach> okay
[18:30] < Lawouach> I would suggest chatting with Jason for that
[18:30] < Lawouach> That'd be interesting
[18:31] < orphans> yeah, I was going to have a look through his code and break my svn possibly :)
[18:31] < Lawouach> sounds good
[18:32] < orphans> cool
[18:32] < Lawouach> well I don't think there is much to ask this week. You are doing well so that's fine by me.
[18:32] < Lawouach> Again
[18:32] < Lawouach> I would appreciate a mid(ish)-week report if you can
[18:32] < orphans> yeah, sure
[18:33] < orphans> I'll try and get it done a bit before Friday this time, but no promises :)
[18:34] < Lawouach> that'd be appreciated
[18:34] < orphans> I had a quick question if you've got time?
[18:34] < Lawouach> yes
[18:34] < Lawouach> this is your time :)
[18:34] < orphans> I don't suppose you could give me a bit of an idea where to start looking at the many-client thing
[18:35] < orphans> two seems pretty easy and logical to me, but I'm a bit adrift with what I need for more than that
[18:35] < orphans> could just do with something to read through, or code to look at for a bit more understanding
[18:35] < Lawouach> on what level?
[18:36] < orphans> fairly broad - I don't see very clearly the link between having two peers and having, say, seven
[18:36] < orphans> two peers is a graphline, but seven is some hideous mess in my mind :)
[18:37] < orphans> I maybe need to do a bit more reading to ask my question a bit better :)
[18:37] < Lawouach> Well I must admit I'm not entirely sure what you mean.
[18:38] < orphans> ok, don't worry about it - I know there's a couple of places in Kamaelia where it does it, so I'll have a look and come back if I'm still lost
[18:40] < Lawouach> orphans: if you don't mind, which bit of code is causing the trouble in that context?
[18:40] < Lawouach> I'm curious
[18:42] < orphans> I've not tried it out at all, but for example if you look at Jam at the moment it makes an XY pad for each user then connects that up manually to the client/server bit
[18:42] < orphans> I guess what I was wondering was how you make that process of creating, connecting, sending the current state work for an arbitrary number of users
[18:42] < Lawouach> you should create them lazily
[18:43] < Lawouach> the Carousel component is a good example of what I mean
[18:43] < Lawouach> hang on
[18:44] < Lawouach> actually even the SimpleServer component is a good idea
[18:44] < Lawouach> based on certain condition (say a new connection is accepted by the server) it calls the factory function provided
[18:44] < Lawouach> that function returns a new component
[18:45] < orphans> where's simpleserver?
[18:45] < Lawouach> Not knowing the Osc protocol enough I don't know if you can retrieve the available peers from the Osc server
[18:45] < Lawouach> But I assume that be the idea
[18:45] < Lawouach> oh
[18:45] < Lawouach> hang on
[18:47] < Lawouach> http://trac.defuze.org/browser/oss/bucker/scripts/queue-server.py#L86
[18:47] < Lawouach> example of what I mean
[18:47] < Lawouach> http://kamaelia.sourceforge.net/Cookbook/Carousels
[18:48] < Lawouach> But before deciding the component to choose what I'd like to understand is
[18:49] < Lawouach> Are users supposed to define where to connect to? I mean in terms of Osc
[18:49] < Lawouach> Your current code hardcode /XY/1 and /XY/2
[18:51] < orphans> yeah, that should be hardcoded (ish - so it'd probably be /XY/1 /XY/2 ... /XY/N-1 /XY/N), and then you provide a doc describing what is available
[18:51] < orphans> I think you can also query the server as to what is available - gotta check that out
[18:53] < Lawouach> Well probably you could query the server and provide a combo box or a tree allowing the user to select dynamically where to connect
[18:53] < Lawouach> But does that help you? I'm not sure :)
[18:54] < orphans> you still need the ip of the other peers - it doesn't provide that for you
[18:54] < orphans> but I think that's an issue for when I understand a bit more
[18:54] < Lawouach> I don't understand why
[18:55] < Lawouach> I thought you were conversing with a server
[18:55] < Lawouach> Is there direct peer-2-peer connection?
[18:55] < orphans> yeah, but there's no centeral server - it's distributed
[18:55] < orphans> yeah - direct peer to peer
[18:55] < orphans> ahh, I think maybe I confused what you meant earlier
[18:55] < Lawouach> ah okay
[18:55] < Lawouach> I had missed
[18:55] < Lawouach> that point
[18:56] < orphans> i.e. you can connect up the XYPads directly in a graphline or something
[18:57] < orphans> but yeah, somewhere (possibly everywhere) there's going to have to be a list of which peers are in a certain network, and their locations
[18:58] < Lawouach> well think of it like any video games where a local machine is both a server and a client
[18:58] < Lawouach> the server part must track which clients it is connected to
[18:58] < Lawouach> this means you're going to have a to write some logic to
[18:59] < Lawouach> 1. track connected peers to the server
[18:59] < Lawouach> 2. dispatch the Osc messages based on the pads each peers has shown an interest
[18:59] *** MS- needs to go afk 
[19:00] < MS-> j_baker: I'll be back later (sorry for short notice)
[19:00] < j_baker> np
[19:00] < Lawouach> orphans: or you might decide to consider you only write clients. Meaning you let a third party application to handle the server part
[19:00] *** MS- is now known as ms-afk
[19:00] < Lawouach> And your peers connect to that 3rd party application
[19:00] < orphans> mhm
[19:01] < Lawouach> Damn I need to read more of Osc
[19:01] < Lawouach> This is confusing
[19:01] < Lawouach> I would indeed appreciate more docs
[19:01] < Lawouach> and diagrams :)
[19:01] < Lawouach> That will help us to communicate clearly
[19:01] < orphans> yeah - I put one in for Jam, but I'll try and clear it all up a bit
[19:01] < orphans> top of my todo list :)
[19:03] < orphans> from what you said above I'd probably prefer the distributed way rather than relying on a single server
[19:03] < orphans> think it's probably a bit simpler from a user's pov then, and you don't need to rely on anything other than yourself
[19:03] < orphans> but then it does pose the problem of how you find the first client to connect to
[19:04] < orphans> s/client/peer
[19:04] < Lawouach> Well you would need to specify its address no matter what
[19:04] < Lawouach> There is no auto discovery mechanism yet AFAIK
[19:04] < Lawouach> So let's just assume you know at least the initial address
[19:05] < orphans> yeah, but the server would be a fixed address I suppose. Anyway, yeah
[19:05] < Lawouach> It would be interesting that once connected the other peer informs the peer of other connected peers
[19:05] < Lawouach> So let's say we have A which is both a peer and a server in itself
[19:05] < Lawouach> B -> A
[19:05] < Lawouach> C -> A
[19:06] < Lawouach> A tells B and C of the other one
[19:06] < orphans> yeah
[19:06] < Lawouach> B and C might want to connect to each other as well
[19:06] < Lawouach> say:
[19:06] < Lawouach> B -> C
[19:06] < orphans> yup
[19:06] < Lawouach> C would start acting like a server too
[19:06] < Lawouach> okay
[19:07] < Lawouach> then eventually you build a network of peers that can act as server if requested
[19:07] < orphans> yeah
[19:07] < Lawouach> of course you would need to provide an option to Jam so that a user could disable the server capabilities if he wants too
[19:07] < Lawouach> so B -> C
[19:07] < Lawouach> C rejects the request
[19:08] < orphans> uh huh
[19:08] < Lawouach> alright, from a GUI perspective you could imagine that each peer offers the list of potential other peers in a combo box
[19:09] < Lawouach> the user would select one and click "Connect"
[19:09] < orphans> yeah
[19:09] < Lawouach> you need to keep a clean seperation between the peer and server sides of course
[19:09] < Lawouach> okay
[19:09] < orphans> yeah - the new UDP components let you do that easily
[19:09] < Lawouach> well have understood each other better? :)
[19:10] < orphans> a lot better :)
[19:10] < Lawouach> cool
[19:11] < Lawouach> so how does it fit your schedule?
[19:11] < orphans> erm, hard to say
[19:11] < orphans> how long do you think something like that would take at a guess?
[19:12] < orphans> I've never done anything like it so I'm a bit in the dark
[19:13] < Lawouach> A first draft of functionnality would take only a couple of days because you basically have the code there already
[19:13] < Lawouach> But making it more useful will be gradual and will take some time
[19:14] < Lawouach> I suggest you basically start by making sure you can start Jam and let it act as a server and a peer itself
[19:14] < Lawouach> Take three peers overall
[19:14] < Lawouach> and ensure two of them can connect the third
[19:14] < Lawouach> then make sure that third informs the other two of each other
[19:15] < Lawouach> just sending their address as text would be enough for now
[19:15] < Lawouach> Then you'd have the basic of the P2P network
[19:15] < Lawouach> Italians are getting killed :)
[19:15] *** vmlemon_ has joined #kamaelia
[19:16] < orphans> ok, yeah - that sounds like what I was going to go for
[19:16] < Lawouach> good
[19:16] < Lawouach> so that should take you two to three days max.
[19:16] < Lawouach> (and make sure you ask questions ;)
[19:17] < orphans> ok, cool. In the schedule I've given a week and a bit to get it all good and working well enough to distribute, so it sounds feasible
[19:17] < Lawouach> currently there is no UDPServer I think in Kamaelia
[19:18] < orphans> yeah, I'll need to add it in. I think it should be relatively easy to do
[19:18] < orphans> I'm slowly getting my head round this whole networking malarkey :)
[19:19] < Lawouach> http://kamaelia.sourceforge.net/Components/pydoc/Kamaelia.Chassis.ConnectedServer.html < -- that component would be a good base to look at
[19:20] < orphans> ahh, yeah - that looks cool
[19:21] < Lawouach> hmm
[19:21] < Lawouach> My UDP knowledge is so rusty
[19:21] < Lawouach> Do you actually need to listen for incoming sockets like you'd do with TCP?
[19:21] *** vmlemon_ has joined #kamaelia
[19:22] < orphans> not exactly - you bind to a port, but incoming clients don't actually connect
[19:22] < Lawouach> yeah
[19:22] < Lawouach> so you don't need to write a component like above
[19:22] < orphans> they just send the data and the ip it comes from
[19:23] < Lawouach> http://kamaelia.sourceforge.net/Components/pydoc/Kamaelia.Chassis.ConnectedServer.html#222
[19:24] < Lawouach> Even though I don't think you need anything as extensive as the ConnectedServer component
[19:24] < Lawouach> This example is roughly what I would expect your UDPReceive to eventually be like
[19:24] < Lawouach> the "protocol = newProtocol" bit is what interests me
[19:25] < orphans> uh huh
[19:25] < Lawouach> well it's simpler than it looks
[19:25] < Lawouach> in your UDPReceiver
[19:25] < Lawouach> where you read data
[19:25] < orphans> that's good :)
[19:25] < Lawouach> you could have somethinge like:
[19:27] < Lawouach> scratch that
[19:27] < Lawouach> I'm trying to get my head around the design you might want to follow
[19:27] < Lawouach> ah good
[19:28] < Lawouach> got it
[19:28] < Lawouach> in your saveRecv(...)
[19:28] < Lawouach> you get the data and the peer address
[19:28] < orphans> yeah
[19:28] < Lawouach> so I would have something like this
[19:28] < Lawouach> self.peersMapping = {}
[19:28] < Lawouach> if address not in self.peersMapping:
[19:29] < Lawouach> self.peersMapping[address] = makeProtocol(address)
[19:29] < Lawouach> else:
[19:29] < Lawouach> self.send(data, 'outbox_%s' % address)
[19:29] < Lawouach> the point here:
[19:30] < Lawouach> You create specialized components the first time you receive data from a peer you don't know about
[19:30] < Lawouach> the makeProtocol could be a function that returns you a component or directly a component instance created
[19:30] < Lawouach> the former might allow for more dynamic behavior
[19:31] < Lawouach> in the first if
[19:31] < Lawouach> you'd have :
[19:31] < Lawouach> if address not in self.peersMapping:
[19:31] < Lawouach> self.peersMapping[address] = MakePeerComponentToHandlePeerData(address)
[19:32] < orphans> uh huh
[19:32] < Lawouach> self.link((self, 'outbox_%s' address), ( self.peersMapping[address], 'inbox)
[19:32] < Lawouach> Do you see what I'm getting at?
[19:33] < orphans> yeah, and then you'd send messages to all (or a subsection of) outboxes
[19:33] < Lawouach> Basically create a component to deal with the data each time a new peer announces itself
[19:33] < Lawouach> yes
[19:33] < Lawouach> Here you might want to dynamlically create boxes
[19:33] < Lawouach> This is not well known but there is a very handy component to do that in Axon
[19:33] < orphans> yeah
[19:34] < orphans> adaptiveCommsComponent?
[19:34] < Lawouach> Instead of inheriting from component, you inherit from AdaptiveCommsComponent
[19:34] < Lawouach> yes
[19:34] < Lawouach> exactly
[19:34] < orphans> :)
[19:34] < Lawouach> so you'd have to create dynamically those boxes before creating the linkage
[19:35] < Lawouach> That's how you could support multiple peers :)
[19:35] < orphans> awesome :)
[19:35] < orphans> that's all an awful lot clearer in my mind now, cheers
[19:36] < Lawouach> cool
[19:36] < Lawouach> that's clearer in mine too :)
[19:36] < orphans> heh, good
[19:36] < orphans> I'll be testing you next week :D
[19:37] < Lawouach> :)
[19:37] < Lawouach> heh!
[19:37] < orphans> right, I think that's your lot from me this week - I'll let you go and drown your sorrows
[19:38] < Lawouach> bah :)
[19:38] < orphans> cheers for all the help
[19:38] < Lawouach> That was an interesting session for me and it shows you again than you need to attack a problem in different angles but step by step.
[19:38] < orphans> yeah, I'm a lot further on now than what I was beforehand
[19:39] < Lawouach> And asking someone out of the project is always a good way of getting a new point of view
[19:39] < Lawouach> Anyway that was interesting for me :)
[19:39] < orphans> glad to hear it :)
[19:40] *** orphans goes to eat curry which my housemate has prepared for me
[19:40] *** orphans switches from the third to the first person
[19:41] < Lawouach> :)
[20:06] < Lawouach> orphans: http://www.transmote.com/flosc/ knew about this?
[20:14] *** vmlemon has joined #kamaelia
[22:13] *** bcarlyon|laptop has joined #kamaelia
[22:33] *** bcarlyon|laptop has joined #kamaelia
[22:35] *** bcarlyon|laptop has parted #kamaelia
[22:39] *** vmlemon_ has joined #kamaelia
[23:01] *** vmlemon_ has joined #kamaelia