[00:03] *** vmlemon__ has joined #kamaelia
[03:34] *** j_baker has joined #kamaelia
[06:37] *** j_baker has joined #kamaelia
[06:37] *** j_baker has parted #kamaelia
[06:40] *** j_baker has joined #kamaelia
[06:41] *** vmlemon_ has joined #kamaelia
[06:41] < vmlemon_> Hi
[06:42] < j_baker> hello
[06:42] < j_baker> So I installed Yellow Dog linux.
[06:42] < j_baker> So far it seems to be working out pretty well.
[06:42] < vmlemon_> Any good?
[06:43] < j_baker> It seems like it's made a lot more for PPC than OpenSUSE is.
[06:43] < vmlemon_> I'm surprised that they're still around, although they did originate yum
[06:43] < j_baker> Although it isn't a distro for people who have to have the latest and greatest version of every piece of software.
[06:44] < j_baker> Yellow dog does also do the PS3.
[06:44] < vmlemon_> Aah
[06:45] < j_baker> Plus it's essentially repackaged CentOS
[06:45] < j_baker> (which of course is essentially repackaged redhat)
[06:47] *** vmlemon_ wonders how many "degrees of seperation" each distribution has from the others
[06:49] < vmlemon_> Yay, a repackaged repackaging ;)
[06:49] < j_baker> Heh... well, it depends on how you look at it.
[06:50] < j_baker> I mean, Yellowdog is essentially repackaged CentOS which is essentially repackaged RHEL which is essentially repackaged Fedora.
[06:51] < vmlemon_> and to make it more confusing, Fedora's lineage was the original Red Hat Linux...
[06:52] < j_baker> Yup.
[06:52] < vmlemon_> Before they axed or rebranded that product line
[06:52] < j_baker> One other nice part is that I can actually get Java to work correctly though.
[06:52] < vmlemon_> Yay
[06:53] < j_baker> Much as I dislike using eclipse, it's better than the alternatives.
[06:53] < vmlemon_> So much for WORA/WODA and Cross-Platform Runtimes
[06:54] < j_baker> I tried SPE and eric, but they were both PITAs
[06:54] < j_baker> with WAY too many dependencies
[06:54] < vmlemon_> With Sun's JVM?
[06:54] < vmlemon_> Ouch
[06:54] < j_baker> I think I'm actually using gcj.
[06:55] < vmlemon_> Aah
[06:55] < j_baker> Which is kinda surprising because I hear it's not all that stable.
[06:55] < vmlemon_> It's getting there
[06:55] < vmlemon_> Albeit at a glacial pace
[06:56] < vmlemon_> I prefer the official one on x86, though
[06:57] < vmlemon_> Despite that packaging being "proprietary ane closed-source" to some
[06:57] < j_baker> The Sun JVM?
[06:58] < vmlemon_> Yes
[06:58] < vmlemon_> *and
[06:58] < vmlemon_> Stupid typo
[07:00] < vmlemon_> Like certain other GNU projects (can you say HURD?), development is extremely slow compared to other projects, but a JVM isn't trivial
[07:01] < j_baker> Indeed
[07:01] < j_baker> I can only imagine what the Mono team must be going through.
[07:03] < vmlemon_> Microsoft only went so far to do their bit, and even now, I'm sure that there's quite a lot of undocumented functionality to wade through
[07:04] < vmlemon_> They're probably in better shape than Gnash, though
[07:05] < j_baker> Meh, I think that there's enough useless DOCUMENTED functionality to wade through with .NET.
[07:05] < vmlemon_> (Progress-wise)
[07:05] < vmlemon_> Hah
[07:05] < vmlemon_> That's a new one ;)
[07:05] < j_baker> But I think there's one thing we can agree on: they have it better than the Wine team.
[07:06] < j_baker> I couldn't imagine having to deal with Win32 directly.
[07:06] < vmlemon_> It's usally too little documentation, when they're involved
[07:06] < vmlemon_> *usually
[07:07] < j_baker> I don't think that documentation is so much the problem with MS anymore so much as shoddy programming practice.
[07:07] < j_baker> They got in too much trouble a while back with "sekrit" APIs.
[07:08] < j_baker> (and admittedly MSDN is a pretty good documentation site)
[07:08] < j_baker> even if it can be difficult to navigate at times.
[07:08] < vmlemon_> I think Wine have no option but to reverse-engineer as they go, and tread custard going after constant API/syscall and ABI changes
[07:09] < vmlemon_> (Last time I tried, it wasn't possible to run even the most trivial Vista binary)
[07:10] < j_baker> That's strange. Win32 really hasn't changed all that much from Windows 95 all the way to Vista. Although the executable format may have changed.
[07:10] < vmlemon_> I guess it could be quicksand ;)
[07:12] < vmlemon_> I tested Notepad, cmd.exe, mspaint.exe and another binary, and execution failed immediately
[07:12] < j_baker> Or it could just be microsoft sucking. That's always a good place for blame.
[07:12] < j_baker> Really? Wow.
[07:13] < j_baker> I could see cmd.exe, but you wouldn't figure Notepad at least would be that difficult.
[07:13] < j_baker> Although it wouldn't suprise me if microsoft put a few "enhancements" in those things just so they won't run in wine.
[07:13] < vmlemon_> Even when using the Windows Vista setting on Wine
[07:15] < vmlemon_> I know that XP's cmd.exe is functional on it, as is ping.exe
[07:16] < vmlemon_> Dunno about the Vista versions
[07:18] < vmlemon_> Although they've probably been "fixed"
[07:20] < vmlemon_> I bet that they have "Stop this from running on Wine" bug tracker items ;)
[07:28] *** vmlemon_ has joined #kamaelia
[08:03] *** Matt-afk is now known as mhrd
[08:04] < mhrd> they seem to tend to just add extra options, flags, or a newer version of a call, here and there, every time they do a new release
[08:05] < mhrd> what surprised me was finding that this one: http://msdn.microsoft.com/en-us/library/ms724411(VS.85).aspx ... is only new in Vista ... kinda expended they'd have sorted that by win2000 or winxp
[08:33] *** orphans has joined #kamaelia
[09:18] *** Uraeus has joined #kamaelia
[09:32] *** MS- has joined #kamaelia
[09:32] < MS-> Morning
[09:34] < orphans> morning MS-
[09:36] *** bcarlyon|laptop has joined #kamaelia
[09:37] < MS-> orphans: how goes?
[09:37] *** vmlemon_ has joined #kamaelia
[09:37] < vmlemon_> Hi
[09:38] < orphans> not too bad ta, busy :)
[09:38] < vmlemon_> Hi
[09:39] < MS-> cool.
[09:39] < orphans> yourself?
[09:39] < MS-> I'm doing the usual thing for a monday morning :-)
[09:39] < orphans> heh, speak in three hours then :)
[09:39] < MS-> heh
[09:39] < vmlemon_> kamaeliabot: dance
[09:39] Reply: does the macarena
[09:43] < Uraeus> another warm day in sunny Cambridge
[09:44] < MS-> Hmm. That really sounds nice right now
[09:45] < vmlemon_> Ugh, I mispasted a quote in another channel, and it's started a weird meme
[09:45] < MS-> Cool :)
[09:45] < MS-> (unless it's *really* wierd)
[09:46] < Uraeus> MS-: to bad the Camb doesn't exactly come of as inviting for a swim
[09:49] < vmlemon_> I originally pasted something from #opensolaris in here, and wanted to paste the same quote in another channel, but accidentally quoted myself pasting the quote
[09:51] < vmlemon_> So it's started someone off trying to "recycle" the last thing someone said as a quote along with the original quote line :|
[09:53] < MS-> Uraeus: No, I personally wouldn't swim it in.
[09:54] < MS-> Too easy to get caught in the weeds/etc in the bottom of the river. (which is the most common cause of drowning in the Cam)
[09:54] < MS-> vmlemon_: Ahh, I see
[09:56] *** Davbo has joined #kamaelia
[09:57] < MS-> Davbo: morning
[09:57] < Davbo> morning
[09:58] < Davbo> Agh brb
[09:58] *** Davbo feels ill today
[10:00] < vmlemon_> Hi Davbo
[10:05] < Davbo> Hi vmlemon_
[10:06] < MS-> Davbo: So, I guess "how's things" is a bit moot
[10:06] < MS-> hope your deadline went OK
[10:07] < Davbo> I've submitted it online so should be okay
[10:07] < Davbo> i'll take the paper in tomorrow
[10:07] < MS-> cool
[10:07] < Davbo> No way i'm getting on a train like this :(
[10:08] *** MS- nods
[10:08] < Davbo> well i feel much better now, it was worse this morning
[10:08] < MS-> i see
[10:08] < Davbo> Anyway sorry, i'm here now. :-)
[10:08] < MS-> cool
[10:08] < MS-> OK to chat then?
[10:09] < Davbo> Yeah should be fine
[10:09] < MS-> OK, cool
[10:10] < MS-> In which case, we ought to discuss what you're doing in this period leading up to the beginning
[10:11] < MS-> Essentially this period should be for getting up to speed with the tools of the project, admin and also exploring ideas related to your project
[10:11] < Davbo> Yeah I've gone through Magnadoodle trying to understand it this week
[10:11] < Davbo> I feel more confident about implementing my own version now
[10:11] < MS-> it's probably worth copying it into your sketches directory, and playing with modifying it
[10:12] < MS-> and checking in the changes as you do
[10:12] < Davbo> Ah right
[10:12] < MS-> The other thing is that since you're doing multiwindow stuff
[10:12] < MS-> You'll want to nab this:
[10:12] < MS-> http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/MPS/pprocess/MultiPipeline.py?revision=3829&view=markup
[10:12] < MS-> and copy that into your directory and see if you can do something along the lines of
[10:12] < Davbo> Right
[10:12] < MS-> "copy all drawing events to an outbox"
[10:13] < MS-> "pipe them all to a second magnadoodle"
[10:13] < MS-> "and have the second one draw the same thing"
[10:13] < MS-> (probably as something line "draw line x,y,x,y" or "draw path x,y,x,y,x,y,x,y,x,y,x,y"
[10:13] < Davbo> Okay, what's the difference with this and a regular Pipeline?
[10:14] < MS-> Also, in order for this to work, you will *probably* need the version of Axon & Kamaelia that's sitting on my branch
[10:14] < MS-> The difference is that a ProcessPipeline runs then in different processes :)
[10:15] < MS-> The best way of writing this initially
[10:15] < MS-> is probably to just use 2 magnadoodle components placed side by side
[10:15] < Davbo> Oh I see, so the OS can split them between separate cores?
[10:15] < MS-> Correct
[10:15] < Davbo> Ah cool
[10:15] < MS-> It's the simplest most relevant multiprocess/core app I can think of
[10:16] < Davbo> Yeah sounds good
[10:16] < MS-> To get to that stage, you probably need to do the following:
[10:16] < MS-> Pipeline(MagnaDoodle(), MessageFrobber(), MagnaDoodle())
[10:16] < MS-> initialler
[10:16] < Davbo> right
[10:17] < MS-> Once that's working, get to the stage that you can run http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/MPS/pprocess/MultiPipeline.py?revision=3829&view=markup
[10:17] < MS-> With no changes
[10:17] < MS-> then change you example to a ProcessPipeline
[10:17] < MS-> That's probably the simplest route
[10:17] < Davbo> hmm right
[10:17] < MS-> That MultiPipeline code isn't in Axon yet
[10:17] < MS-> i suspect the changes needed are pretty minimal FWIW
[10:18] < Davbo> Will there be errors thrown in going from Pipeline to MultiPipeline?
[10:18] < MS-> Shouldn't be, not
[10:18] < Davbo> Okay
[10:18] < MS-> if you scroll down to the bottom of...
[10:18] < MS-> http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/MPS/pprocess/MultiPipeline.py?revision=3829&view=markup
[10:19] < MS-> you'll see that it mixes Pipelines and ProcessPipelines
[10:19] < Davbo> oh i see
[10:20] < MS-> it's not obvious from that, but you can still sling dictionaries, lists, & tuples between processes
[10:20] < Davbo> is it difficult getting the separate processes to "talk to each other"?
[10:20] < Davbo> or will this handle it
[10:20] < MS-> That handles it
[10:20] < Davbo> Alright sounds good
[10:20] < MS-> It should be completely transparent changing from Pipeline to ProcessPipeline (and from Graphline to ProcessGraphline)
[10:21] < MS-> Note the *ould word :)
[10:21] < Davbo> Yeah it's very beneficial to have it like that
[10:21] < MS-> It does work though :)
[10:22] < MS-> Ok, that's a fairly gentle starting point I think.
[10:22] < MS-> Admin wise, this should get you used to using code from a branch - since you'll need to install Axon & Kamaelia from private_MPS_Scratch
[10:22] < Davbo> Where am i looking for your version of Axon?
[10:22] < Davbo> Heh :)
[10:22] < MS-> Also, it'll get you checking in code as well
[10:23] < MS-> if you do an "svn copy" of the MagnaDoodle code
[10:23] < MS-> rather than a copy, add, checkin, that'll get you used to keeping version histroy
[10:23] < MS-> history even
[10:23] < MS-> make it easier to see your changes
[10:24] < MS-> ala this: http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Code/Python/Kamaelia/Kamaelia/UI/Pygame/MagnaDoodle.py?annotate=3882
[10:24] < Davbo> right
[10:25] < MS-> Final thing from my side - contributor agreement -
[10:25] < Davbo> So do it in the fashion you described for making a branch?
[10:25] < MS-> yep
[10:25] < Davbo> righty
[10:25] < MS-> svn copy ../../Code/Python/...MagnaDoodle.py .
[10:25] < MS-> svn ci MagnaDoodle.py
[10:25] < MS-> (you can do individual files :) )
[10:26] < MS-> If you get stuck, just ask as usual :)
[10:26] < Davbo> Will do
[10:26] < MS-> Regarding the contributor agreement, assuming you're happy with it, can copy & paste
[10:26] < MS-> http://kamaelia.sourceforge.net/Developers/SampleContributorAgreement
[10:26] < MS-> into your text editor/word processor of choice
[10:27] < Davbo> Okay
[10:27] < MS-> The bits between the horizontal rules that is
[10:27] < MS-> change the bits in green
[10:27] < MS-> Change the purple bit "JLB" to "DK"
[10:28] < MS-> and leave the purple date empty.
[10:28] < MS-> then print it off.
[10:28] < MS-> and if you could post it to:
[10:29] < MS-> [or]
[10:29] < Davbo> This reminds me I forgot to get that Google thing faxed again, oh well.
[10:29] < MS-> Michael Sparks, Senior Research Engineer, c/o BBC TV Centre, London, W12 7RJ
[10:30] < Davbo> That should be no problem
[10:30] < MS-> cheers
[10:30] < MS-> I did look into an online system for dealing with this, but after talking to BBC lawyers for 4 months solid we came to the conclusion that life was too short :)
[10:31] < Davbo> Agreed, Google is having similar problem with students not liking fax machines hehe
[10:31] < MS-> if you want to cheat, you can actually probably just probably put it into an envelope, go to a BBC building, and ask the nice receptionist if that could put it in their internal mail :-)
[10:31] < MS-> Since I guess there's one near you :)
[10:31] < MS-> probably
[10:32] < Davbo> Yeah
[10:32] < Davbo> The ones i know of aren't very near by
[10:32] < MS-> fairy snuff
[10:32] < MS-> :)
[10:34] < MS-> OK, I think that's all from me - I think that covers getting up to speed with the core tools, and exploring the code that's available in a way that's hopefully useful
[10:34] < MS-> as well as the admin stuff
[10:34] < MS-> Do you need to raise anything with me?
[10:34] < Davbo> I'll start this probably on Wednesday fyi. Got some other things to get out of the way
[10:34] < MS-> Cool
[10:35] < Davbo> The exam dates i noted on my application are now official also
[10:35] < MS-> the aim really is to ensure that you're up to speed with the tools you'll need to use essentially - ie pygame based components, multiprocess stuff, and subversion - so you can hit the ground running
[10:36] < Davbo> Yeah, i'm getting used to svn now
[10:36] < MS-> Can you forward me the actual dates again?
[10:36] < Davbo> yeah sec
[10:36] < MS-> I'm *still* getting used to SVN myself
[10:37] < MS-> After a couple of years since we changed. It's better than CVS though - especially for directory based stuff. Actually keeping version history when you move/change/copy files is really nice
[10:37] < Davbo> Thu, May 29, 13:30 – 15:30
[10:37] < Davbo> Wed, June 4, 09:00 – 11:00
[10:37] < Davbo> Fri, June 6, 13:30 – 15:30
[10:37] < MS-> much appreciate
[10:37] < MS-> d
[10:38] < MS-> so, anything you need from me at this stage?
[10:39] < Davbo> Nah, is it okay if we call it a day here? So i can go and lay down lol
[10:40] < MS-> It's fine, you go rest
[10:41] < MS-> Thanks for stopping by :)
[10:41] < MS-> Drink vitamin C :)
[10:41] < Davbo> no problem, I'll be back on later hopefully.
[10:41] < MS-> Only if you're well I hope
[10:43] < Davbo> Alright, cya later all.
[10:47] *** MS- is now known as ms-away
[11:26] *** Chong- has joined #kamaelia
[11:27] < Chong-> Afternoon, all.
[11:36] *** Chong- has joined #kamaelia
[11:38] < vmlemon> Hi Chong-
[11:50] < vmlemon> Hi Chong- 5
[11:52] < Chong-> Hello vmlemon
[12:01] *** vmlemon_ has joined #kamaelia
[12:01] *** Chong- just sorted out the crash problem of eclipse: life is not easy:-)
[12:04] < vmlemon_> Let me guess, the time taken to fix it slowly Eclipses the time spent using it? ;)
[12:06] < Chong-> Indeed :-)
[12:21] *** ms-away goes for lunch
[12:58] *** ms-away is now known as ms0
[12:58] *** ms0 is now known as ms-
[12:59] *** ms- notes ms0 is very similar to ms-, except unlike ms-, ms0 can't type proper like wot I can
[13:11] *** ms- joins a conference call
[13:11] < ms-> sigh
[13:11] < Lawouach> ?
[13:11] < ms-> work
[13:11] < ms-> it's a similar to
[13:11] *** ms- dies quietly
[13:12] < Lawouach> :p
[13:29] *** Chong- has joined #kamaelia
[13:42] *** vmlemon_ has joined #kamaelia
[13:43] < orphans> Lawouach, we got a meeting tonight?
[13:44] < Lawouach> normally yes.
[13:44] < Lawouach> Unless you can't make it.
[13:45] < orphans> nah, I'm good, just checking you were OK too :)
[13:45] < Lawouach> yeap
[13:46] < orphans> cool cool
[13:46] *** bcarlyon|ubuntu has joined #kamaelia
[14:07] *** bcarlyon|laptop has joined #kamaelia
[14:08] < Chong-> Hi ms-, are you there?
[14:15] < ms-> yep, sorrt
[14:15] < ms-> (was just grabbed here)
[14:15] < ms-> OK, here now
[14:16] < ms-> ready when you are
[14:16] < ms-> sorry about that
[14:16] < ms-> OK, essentially a broken record - same things as I discussed earlier with Davbo.
[14:16] < Lawouach> I've committed the SSL support into my branch
[14:16] < ms-> Lawouach: Cool
[14:16] < Chong-> np
[14:17] < Lawouach> It should allow TCPClient to work with SSL servers
[14:17] < ms-> Lawouach: very cool
[14:17] < Lawouach> It doesn't do SSL handshake
[14:17] < Lawouach> Since the Python socket.ssl built-in function doesn't do that.
[14:17] < ms-> Lawouach: k
[14:18] < ms-> Chong-: OK, this period up to the beginning of the coding period is really about getting up to speed with project processes, admin and getting to know where people need support etc
[14:18] < Lawouach> I'll keep quiet now.
[14:18] < ms-> Lawouach: ta ;)
[14:18] < ms-> j_baker's doing really well with that since he's showing lots of points of pain
[14:19] < Chong-> ms-: good.
[14:19] < ms-> So we need to come up with a plan for your work
[14:19] < Chong-> sure.
[14:19] < ms-> the key points really, are getting up to speed with code, exploring what's there and also with the tools - especially with subversion
[14:20] < Chong-> Now I am going through the existing Kamaelia codes.
[14:20] < ms-> I'll just see what you've already put in svn
[14:21] < ms-> Ah yes, I think the biggest issue you're likely to hit, based on your code, is to deal with the issues of *perspectives* in kamaelia code
[14:21] < Chong-> It's still the codes I did at the very beginning in SVN.
[14:21] < ms-> Chong-: yep
[14:21] < ms-> So my suggestion would be to think of a small project to deal with using the components you're going to extend/modify
[14:22] < Chong-> ms-: the issues of *perspectives* ---need explanation
[14:22] < ms-> Also, we're interested in retrieving the data for your graph from a database, so ideally ought to take that into account
[14:22] < ms-> Chong-: Indeed
[14:22] < ms-> most software isn't written with a perspective in mind
[14:22] < ms-> ie like first/second/third person
[14:23] < ms-> whereas in essence kamaelia code *is*
[14:23] < ms-> When I write
[14:23] < Chong-> so ideally ought to take that into account: np
[14:23] < ms-> self.send("Hello", "outbox")
[14:23] < ms-> That's written from the perspective of the *running* component
[14:23] < ms-> If instead of software, you think of it being like a robot at a desk
[14:23] < Chong-> I see.
[14:24] < ms-> And then that's instructions by the robot
[14:24] < ms-> instructions the robot follows (rather)
[14:24] < ms-> then the robot will go "ahh, I send this piece of data via my 'outbox' "
[14:24] < Chong-> I see. Now I can understand the meaning of send and recv.
[14:25] < ms-> Correct
[14:25] < ms-> That's what your mini-axon showed us - that the issue of perspective is implicit in Kamaelia
[14:25] < ms-> you have "the view from inside the component"
[14:25] < ms-> in which case send/recv make sense
[14:26] < ms-> and you also have "the view from outside" which is why (at least in the past) there was "deliver/collect"
[14:26] < Chong-> got it.
[14:26] < ms-> "I send this data to my outbox" "the postman delivers to my inbox"
[14:26] < ms-> cool
[14:26] < ms-> So we need to get you used to dealing with that
[14:27] < ms-> As well as seeing how the visualisation code works
[14:27] < Chong-> I have checked the source code. it seems that deliver is to Inboxes, send is to Outboxes.
[14:27] < Chong-> So, they are not essentially the same.
[14:28] < ms-> generally speaking kamaelia components always work from the local perspective
[14:28] < ms-> They never use the external perspective
[14:28] < ms-> And if a component wishes to use the facilities of another they always go via in/outboxes
[14:28] < ms-> Ok, pragmatica
[14:28] < Chong-> np. Now I can think in Kamaelia :-)
[14:28] < ms-> pragmatics rather
[14:29] < ms-> My suggestion is you need to build first of all a simple system (eg using the console reader) for adding nodes & links to the visualiser
[14:29] < ms-> ie I type something on a console and stuff appears in the visualiser
[14:30] < ms-> The simplest possible system there
[14:30] < ms-> The next logical step, with regard to your project,
[14:30] < ms-> is to define a simple text file format for defining relationships
[14:30] < ms-> between nodes, and then use that to spit out the nodes and links
[14:30] < Chong-> I think this code is already there, in one of our examples
[14:31] < ms-> Chong-: I'm suggesting simple steps, yes
[14:31] *** ms- thinks
[14:31] < ms-> allow the user to define in a text file people
[14:32] < ms-> person mum
[14:32] < ms-> person dad
[14:32] < ms-> person son
[14:32] < ms-> person daughter
[14:32] < ms-> childof(mum, son)
[14:32] < ms-> childof(dad, son)
[14:32] < ms-> for examle
[14:32] < ms-> then use that to generate the nodes and links
[14:32] < Chong-> From Example Usage of TopologyViewer
[14:33] < ms-> I'm more thinking
[14:33] < ms-> start off
[14:33] < Chong-> Pipeline( ConsoleReader(), lines_to_tokenlists(), TopologyViewer(), ).run()
[14:33] < Chong-> I have tried before :-)
[14:33] < ms-> Initially yes
[14:34] < ms-> However, replace console reader with a new component that accepts either interactive input of the above simple social network (which is a family of course)
[14:34] < ms-> ie you need to have a parser that managers local version of the topology to output the links correctly
[14:34] < Chong-> I see. So the job is to extract relations from the file.
[14:34] < ms-> yep
[14:34] < mhrd> - you want to abstract away from the particular syntax of adding/removing nodes/links to something relevant to your problem/app domain
[14:35] < ms-> the next step is to create a custom topology viewer using custom particles
[14:35] < ms-> mhrd: yep
[14:35] < ms-> In this case the custom particles could be a variety of option
[14:35] < ms-> s
[14:35] < ms-> it may be that you pass through an filename
[14:35] < ms-> or simpler start off with simply passing gender through
[14:36] < ms-> allowing colourisation of the particle
[14:36] < ms-> s
[14:36] < Chong-> I see. it's more flexible.
[14:36] < ms-> Yep
[14:36] < ms-> the thing this should exercise is the building of a custom component which maintains a local view (filereader | the parser | modeller)
[14:37] < Chong-> so the rule is: ()-- link; no ()--entity
[14:37] < ms-> And then also a _customisation_ of the topology viewer to support custom nodes
[14:37] < ms-> first of all using colour initially
[14:38] < ms-> but I would actually then suggest using pictures (it's not hard having done that)
[14:38] < Chong-> that's cool
[14:38] < ms-> That should exercise most of the parts of the visualiser you'll need to understand in order to a) extend it to support hierarchies
[14:38] < ms-> b) then extend into 3D.
[14:39] < ms-> The alternative is to look at building 3D components first
[14:39] < ms-> but I suspect that's too many steps and changes before having something working
[14:39] < Chong-> yes. I agree.
[14:39] < ms-> Regarding rules and file format etc
[14:40] < Chong-> It's better to extend the 2D first.
[14:40] < ms-> my suggestion would be to define those first, after having built the basic console reading version
[14:40] < ms-> Also, I would suggest NOT skipping the basic console version first, since you'll be able to reuse that to test your customised visualiser
[14:40] < Chong-> as experiments and learning tools.
[14:40] < ms-> yep
[14:41] < Chong-> np. I'll
[14:43] < Chong-> ms-: one question,
[14:43] < Chong-> when I run b=TopologyViewer(); b.send('ADD NODE TCPClient TCPClient auto -')
[14:43] < ms-> go on
[14:43] < ms-> that should not work
[14:43] < Chong-> yes.
[14:43] < ms-> b.send is from the perspective of the component
[14:43] < Chong-> it does not work.
[14:43] < ms-> Nor *should* it
[14:44] < Chong-> but it's a method of b. So I cannot understand why it doesn't work.
[14:44] < Chong-> no error info, just not work.
[14:45] < ms-> because you are not supposed to use it from OUTSIDE the component
[14:45] < ms-> this is what I meant about perspective that you need to learn :)
[14:45] < Chong-> but b.Outboxes['outbox'] = 'ADD NODE TCPClient TCPClient auto -' works.
[14:45] < Chong-> I see.
[14:46] < ms-> yes, but that's called not using the component correctly
[14:46] < ms-> also known as "broken"
[14:46] < ms-> ;)
[14:46] < ms-> You can create a component
[14:46] < ms-> But to talk to it, you need to connect outboxes to it's inboxes
[14:46] < ms-> you can only do *that* inside a component
[14:47] < Chong-> I see, but not very clearly.
[14:47] < Chong-> how can Pipeline link them?
[14:49] < ms-> What do you mean?
[14:51] < Chong-> I mean connect outboxes to it's inboxes
[14:51] < ms-> it uses Axon to link then
[14:51] < ms-> Axon is allowed to know what's going on there
[14:51] < ms-> Components don't
[14:51] < ms-> If you look at the Pipeline component, you'll see that it does this:
[14:51] < ms-> self.link((source,"outbox"), (dest,"inbox"))
[14:51] < ms-> self.link((source,"signal"), (dest,"control"))
[14:51] < ms-> For each part of the system
[14:51] < ms-> self.link is defined inside Axon.Component
[14:51] < Chong-> Now, I know why send doesn't work, because send is to self.outboxes not Outboxes
[14:52] < ms-> self.Outboxes is part of the mechanism for *declaring*
[14:52] < ms-> the API
[14:52] < ms-> This of components like programs on the unix command line?
[14:52] < ms-> eg
[14:52] < ms-> ~> ls |wc
[14:52] < ms-> 103 106 1393
[14:52] < ms-> You can't get "inside" ls
[14:53] < ms-> Nor can you get "inside" wc
[14:53] < Chong-> I see. I will double check it.
[14:53] < ms-> All you can do is join their outputs to inputs
[14:53] < ms-> There also aren't any "methods" you can do to operate on "ls" or "wc" once they're started
[14:53] < ms-> though you can send them different data
[14:54] < ms-> and they can send different data out of stdout and stderr
[14:54] < ms-> A component is free to call any of its own methods
[14:54] < ms-> However the *user* of a component MUST use the inbox/outbox API with 2 exceptions
[14:54] < ms-> 1) they may call the __init__ method
[14:55] < Chong-> I see.
[14:55] < ms-> 2) In emergency/restricted scenarios (and I really mean restricted), they can call the .stop() method
[14:55] < ms-> Since there is very good reason for that method
[14:56] < Chong-> I see.
[14:56] < ms-> OK, as you can see, that's why I suggested that you need to have some basic tasks that exercise this aspect of perspective
[14:57] < ms-> since it's the thing that's probably missing
[14:57] < Chong-> You're right. thanks.
[14:57] < mhrd> also not forgetting an axon system doesn't do anything until components are 'activated' and the scheduler is running
[14:57] < Chong-> mhr: thanks. I made this mistake before :-)
[14:58] < ms-> OK, summary:
[14:58] < ms-> basic console-> topology visualiser
[14:58] < ms-> file -> topology visualiser
[14:58] < ms-> custom file format (eg family tree) -> file reader -> file parser -> local modeller -> topology visualiser
[14:58] < ms-> then
[14:58] < ms-> ( custom file format (eg family tree) -> file reader -> file parser -> local modeller) -> (basic customised topology visualiser (eg pink/blue for gender))
[14:59] < ms-> then ( custom file format (eg family tree) -> file reader -> file parser -> local modeller) -> (extended customised topology visualiser (eg pictures of the person/user))
[14:59] < ms-> that covers the code & tools exploration aspect
[15:00] < ms-> Admin wise, we need to deal with the contributer agreement
[15:00] < Chong-> got it. np.
[15:00] < ms-> As per conversation with davbo earlier
[15:00] < ms-> you need to take this: http://kamaelia.sourceforge.net/Developers/SampleContributorAgreement
[15:01] < ms-> the bits between horizontal rules
[15:01] < ms-> (ie everything between "Contributor Agreement" down to ... "... THE POSSIBILITY OF SUCH DAMAGE.")
[15:01] < ms-> change the bits in green
[15:01] < ms-> to something appropriate
[15:02] < ms-> change the purple "JLB" to "CL"
[15:02] < ms-> and remove all the bits that are in purple
[15:02] *** vmlemon_ has joined #kamaelia
[15:05] < vmlemon_> Is the contributor agreement a "once in a lifetime thing"?
[15:05] < ms-> Cool
[15:05] < ms-> vmlemon_: yep
[15:05] < ms-> People then tag their code with
[15:05] < ms-> # Contributed under a contributer agreement : CL
[15:05] < ms-> or whatever the exact phrase is
[15:06] < ms-> meaning its a lightweight process
[15:06] < ms-> If they don't tag the code, the agreement doesn't apply to that code.
[15:06] < Chong-> ms-: another question, why the following doesn't work
[15:06] < Chong-> b=TopologyViewer(); b.Inboxes['inbox'] = 'ADD NODE TCPClient TCPClient auto -'; b.Outboxes['outbox'] = 'ADD NODE TCPClient TCPClient auto -'; b.run()
[15:07] < ms-> because, again, it's breaking the rules of engagement
[15:07] < ms-> In fact what they is doing is just changing the documentation for that inbox and that outbox
[15:07] < Chong-> I know. But it can open PyGame window, but does nothing.
[15:07] < ms-> "what they is doing" what is wrong with me today
[15:07] < ms-> indeed, it would do nothing
[15:08] < ms-> That's because That Is The Wrong Way To Use That Code
[15:08] *** ms- wonders if I'm saying something badly
[15:08] < ms-> Please run the examples first
[15:08] < Chong-> np. I know it's not correct. I just want to hack it around. :-)
[15:08] < ms-> Then copy one into your /Sketches directory
[15:09] < ms-> Then modify things there
[15:09] < ms-> Ah
[15:09] < ms-> I see
[15:09] < ms-> Well, please be aware that using things in a broken fashion usually results in non-working code
[15:11] < ms-> OK, any questions about the work you ought to be working on, or is the list of stuff to do (code & paperwork) clear?
[15:11] < ms-> (I have to go do something else)
[15:11] < Chong-> np. I have run almost all existing examples: modeller, Slideshows, Ticker, BouncingCatGame and so on
[15:11] < ms-> If you have more questions, please do ask
[15:11] < ms-> but preferably via email to the google group
[15:12] < Chong-> np. It's clear until now. :-)
[15:12] < ms-> cool
[15:12] < ms-> I'll look forward to seeing your code
[15:12] < Chong-> If any problem, during the process, I will ask you later.
[15:12] < Chong-> np :-)
[15:13] < ms-> cool
[15:13] < ms-> biab
[15:13] < ms-> thanks for coming along, please do idle :)
[15:14] < Chong-> pleasure :-)
[15:18] < vmlemon_> "Thank you for calling #kamaelia. Your call is in a queue, and one of our advisors will be with you shortly."
[15:21] < vmlemon_> No Muzak, though ;)
[15:24] < Chong-> hehe
[15:27] < vmlemon_> kamaeliabot: dance
[15:27] Reply: does the macarena
[16:04] < mhrd> Chong: like MS- said, there is a defined way to write component and communicate with them; anything you do outside of that will likely break when I whimsically change how, for eaxmple, inboxes and outboxes are implemented :-)
[16:09] < mhrd> I find Kamaelia.Util.DataSource and Kamaelia.Util.OneShot are quite useful for testing components - they're convenient components than can be programmed to simply send a piece of data out of their outboxes ... which you can then wire up to another compnoent's inbox using a pipeline or graphline
[16:13] < orphans> very ot but I just stumbled across this. I think it's the best spoof I've seen in years. I'm also 90% sure it's deadly serious - http://www.drumdrums.com/adv002.html
[16:18] *** j_baker has joined #kamaelia
[16:25] *** mhrd is now known as mhrd-afk
[16:25] < j_baker> ms- is there any particular version of python we're targetting with Kamaelia?
[16:46] *** vmlemon__ has joined #kamaelia
[16:47] *** vmlemon__ is now known as vmlemon_
[16:50] < ms-> Hi j_baker good question :-)
[16:50] < ms-> I personally prefer to use functionality that exists in python 2.3
[16:51] < ms-> Rather than more recent
[16:51] < ms-> Even though I tend to use more recent
[16:51] < ms-> There's several reasons to that
[16:51] < vmlemon_> Lowest common denominator factor?
[16:52] < ms-> spot on
[16:52] < j_baker> That makes sense. There are some Linuces that have 2.4 installed.
[16:52] < ms-> one very simple one is that my mac mini that I use as a headless server uses python2.3 and I don't particularly want to change it
[16:52] < ms-> The other one is slightly more obscure
[16:52] < ms-> The functionality we tend to use in 2.3 is actually largely compatible with python 2.2.2 (2.2.3)
[16:53] < ms-> which is the version of python that python on Nokia mobiles derives from
[16:53] *** Davbo has joined #kamaelia
[16:53] < ms-> ie python on series 60 phones
[16:53] < ms-> And I would like to leave that door open where possible
[16:54] < ms-> or if we break it, to know *where* we break it
[16:54] < ms-> So the biggest difference really there is really "no decorators"
[16:54] < ms-> But then lots of people misunderstand how to use them properly/effectively at the best of times, so I'm not too worried about that ;-0
[16:54] < ms-> ;-)
[16:55] < j_baker> Is there any way to check your code to see what versions of python it will run under?
[16:55] < vmlemon_> kamaeliabot: dance
[16:55] Reply: does the macarena
[16:55] < j_baker> Short of actually running it under them
[16:55] < ms-> That's the only decent check.
[16:55] < ms-> there's a good chance that you're not likely to do anything which won't run on 2.3
[16:56] < ms-> The biggest thing that you're more likely to do is use decorators
[16:56] < vmlemon_> Like wallpaper? ;)
[16:56] < j_baker> Those are what you use to make properties, correct?
[16:56] < ms-> personally I would suggest generally speaking don't worry about it too much, but don't be suprised if you hear a yelp. :-)
[16:57] < ms-> the most common use for decorators is something like
[16:57] < ms-> @classmethod
[16:57] < ms-> def somemeth(cls, ...)
[16:57] < ms-> @staticmethod
[16:57] < ms-> def method_that_abuses_a_class_as_a_namespace()
[16:58] < ms-> etc
[16:58] < ms-> In all cases there's a way of doing that without using the decorator syntax
[16:58] < ms-> so if you (think you) need to do that, do it, and we can work around if necessary
[16:59] < ms-> def somemethod(cls,...)
[16:59] < ms-> ....
[16:59] < ms-> somemethod = classmethod(somemethod)
[16:59] < vmlemon_> Ugh, GPRS sucks when in motion at high speed (i.e. 10MPH+), especially if coverage is spotty
[17:00] < j_baker> GPRS sucks altogether (at least here in the US)
[17:00] < vmlemon_> It sucks totally, everywhere
[17:01] < j_baker> Thanks, I'll remember that ms-, but like you said, I doubt I'll use it.
[17:01] < j_baker> But the moral of the story is that Kamaelia should run perfectly well under python 2.4? I'm just making sure because the distro I have ships with 2.4.
[17:02] < vmlemon_> Yup, and they all lived happily ever after ;)
[17:03] < j_baker> Also, are periods ever going to be encountered in a uri other than as an extension?
[17:06] < ms-> j_baker: "the moral of the story is that Kamaelia should run perfectly well under python 2.4?" yes
[17:06] < ms-> j_baker: Do you mean
[17:07] < ms-> urls like http://example.com/foo.bar.baz won't happen?
[17:07] < j_baker> No.
[17:07] < ms-> What's an example that won't happen then?
[17:07] < ms-> :)
[17:07] < vmlemon_> What about dates, and personal names in URIs?
[17:07] < j_baker> I'm asking because the sanitizePath function in Minimal.py deals with periods
[17:08] < j_baker> Like you would a path on a cli
[17:08] < ms-> How would it cope with http://kamaelia.sourceforge.net/Components/pydoc/Kamaelia.Protocol.HTTP.HTTPServer.html ?
[17:08] *** ms- goes to look at code
[17:08] < j_baker> so that if you type ../ it will go up a irectory
[17:08] < ms-> Ahh I see
[17:09] < ms-> ../ is generally considered a bad thing
[17:09] < ms-> :)
[17:09] < ms-> But .../ is OK
[17:09] < ms-> as is ./
[17:10] < j_baker> So would it then be ok to remove the part that deals with the periods? I don't see how a URI could contain periods used that way.
[17:10] < ms-> Ah you're referring to the for loop
[17:11] < ms-> http://kamaelia.sourceforge.net/t/./././././LifeCycle1.png is valid
[17:12] < j_baker> Ok. Then I'll leave that part.
[17:12] < ms-> cool
[17:12] *** ms- goes to catch tram, back later
[17:12] < ms-> :)
[17:12] < ms-> cya
[17:12] *** ms- has parted #kamaelia
[17:12] < j_baker> later
[17:39] *** vmlemon__ has joined #kamaelia
[17:39] < Chong-> mhrd: just saw your message. Thanks a lot for your suggestion. The two tools you suggested are very handy.:-)
[17:39] < vmlemon__> Yay for out of sync audio and video
[18:02] < vmlemon__> Hah, I've just discovered that MPlayer has a colour ASCII art mode
[18:04] *** bcarlyon|laptop has joined #kamaelia
[18:07] < orphans> Lawouach, ping?
[18:07] < Lawouach> pong
[18:08] < orphans> Lawouach, ping?
[18:08] < orphans> ooh, sorry, suffering funky stuff with my internet
[18:08] < Lawouach> sorry I was registerting projects to PyPI
[18:08] < Lawouach> anyway
[18:08] < Lawouach> so how are you?
[18:08] < orphans> not too bad ta, yourself?
[18:09] < Lawouach> good
[18:09] < Lawouach> really hot down here
[18:09] < orphans> it's not too bad here, apart from being stuck indoors for most of the day
[18:09] < Lawouach> :)
[18:09] < Lawouach> Right
[18:10] < Lawouach> So, last week you did two things: 1/ Ensuring there was README and INSTALL files in the repository. 2/ You created a simple example using pygame
[18:11] < orphans> yup
[18:11] < Lawouach> Did you get a chance to expand that demo with sound?
[18:11] < orphans> yeah, I have it making noise now (up to a point)
[18:12] < Lawouach> Alright, I shall see that :)
[18:12] < Lawouach> Is it still UITest.py ?
[18:12] < orphans> yeah, you need a fairly recent version of chuck and a patch which I can fling to you
[18:13] < orphans> and/or anything else which makes funny noises from osc messages :)
[18:13] < Lawouach> a patch for what?
[18:14] < orphans> ahh, chuck - patch as in program thing rather than patch as in apply it to fix some software :)
[18:14] < orphans> sorry, I'm still in bidule/pd/max terminology here
[18:14] < Lawouach> Right, now I'm even more confused :)
[18:15] < orphans> sorry, I'll be more sensible here
[18:15] < orphans> UITest.py makes OSC messages which just contain data - a music program interprets them and makes sounds
[18:16] < orphans> I've been using chuck http://chuck.cs.princeton.edu/ to make the sounds
[18:16] < Lawouach> alright
[18:16] < orphans> and you need a small bit of chuck code (the patch I was refering to - in things like pure data they call programs patches confusingly) which I can send you
[18:17] < orphans> that was fun :D
[18:17] < Lawouach> Installing chuck
[18:17] < orphans> cool - I think you need a newer version than what's packaged for ubuntu
[18:17] < Lawouach> How do I use it?
[18:18] < Lawouach> really?
[18:18] < Lawouach> which version?
[18:18] < orphans> yeah, OSC support was pretty recent - it's a bit of a pita atm
[18:19] < vmlemon__> A bread cash machine? ;)
[18:19] < orphans> vmlemon__, silly :)
[18:20] < Lawouach> orphans: which version then? :)
[18:20] < orphans> can't find which version it went in - the latest one seems to work
[18:20] < Lawouach> I wish to test your code
[18:20] < orphans> (not svn, the latest tarball) - 1.2.1.1b
[18:21] < orphans> sorry, this is pretty annoying - everything is just starting to get OSC support in so a lot of it is pretty new
[18:22] < orphans> the deps (which are packed in ubuntu) are libsndfile-dev, flex and yacc
[18:22] < orphans> or at least that's what I didn't have :)
[18:22] < orphans> *packaged
[18:22] < Lawouach> np
[18:22] < Lawouach> Compiling
[18:23] < Lawouach> How do I use it then?
[18:23] < Lawouach> That'll need to go into the README and INSTALL ;)
[18:24] < orphans> yeah :)
[18:24] < orphans> http://orphans.pastebin.com/d66396df2 - put this into a file (say sound.ck) and run chuck sound.ck
[18:24] < orphans> and run UI test
[18:24] < orphans> and move things :)
[18:25] < Lawouach> I have a sound :)
[18:26] < Lawouach> let's run UI test
[18:26] < Lawouach> python UITest.py
[18:26] < Lawouach> ALSA lib pcm_dmix.c:874:(snd_pcm_dmix_open) unable to open slave
[18:26] < Lawouach> damn :)
[18:26] < Lawouach> I thought ALSA allowed that
[18:27] < orphans> err - what says that?
[18:28] < Lawouach> UI test
[18:28] < orphans> http://ubuntuforums.org/showthread.php?t=601522 - looks like that to me - horrible SDL/pulseaudio gubbins
[18:29] < Lawouach> yeap
[18:29] < Lawouach> pulseaudio really drives me nuts
[18:30] < orphans> I'm still running an old school alsa/*insert a million sound systems here* setup :)
[18:30] < vmlemon__> It seems like a good idea, but in reality, it's broken
[18:32] < orphans> ahh, Lawouach, try disabling ESD maybe
[18:32] < orphans> if you're running it
[18:32] < Lawouach> I'm not I think
[18:34] < Lawouach> well anyway
[18:34] < Lawouach> I'll check that later on.
[18:34] < orphans> k. the joy of linux audio strikes again...
[18:36] < Lawouach> Let's try to step back now.
[18:36] < Lawouach> Looking at your code.
[18:37] < orphans> uh huh
[18:37] < Lawouach> I assume that everytime the ball bounces against a wall it tells Osc to play a sound
[18:38] < Lawouach> Is that correct?
[18:38] < orphans> kind of - theres not really the concept of playing a sound in osc
[18:38] < orphans> it sends a message which says that it's hit the wall for the user to do what they like with
[18:39] < Lawouach> I see. I'm not familiar with Osc enough then. I'll read some doc. about it to be prepared next time.
[18:39] < vmlemon__> It just "emits data"?
[18:39] < orphans> vmlemon__, basically yeah, in a defined format
[18:40] < Lawouach> Alright, so what exactly happens once the Osc component receives data in its inbox?
[18:40] < orphans> Lawouach, http://stud3.tuwien.ac.at/~e0725639/OSC-SYN.txt => if that's working it's interesting
[18:41] < orphans> ok, so the Osc component receives data in the form of a tuple (address, arguments)
[18:42] < orphans> it takes the address and appends it to a namespace (if one exists), so you get a string with the complete address - something like "/myprogram/xyposition"
[18:42] < orphans> (where myprogram is the namespace)
[18:42] < Lawouach> what does this namespace refer to?
[18:43] < orphans> it's how you relate to the different osc programs (maybe using the wrong terminology here)
[18:43] < orphans> so for example your on-screen keyboard could be /osc/buttonpressed, and your step sequencer could be /stepsequencer/buttonpressed, and you can tell the two apart
[18:44] < orphans> s/osc/osk
[18:44] < Lawouach> Where do you define those?
[18:44] < orphans> they go into the addressPrefix in the osc component
[18:45] < orphans> and then you document what all of the different things do, so people can use which parts of them they want
[18:45] < Lawouach> I see you use /UITest as the prefix.
[18:45] < orphans> yeah
[18:46] < Lawouach> I don't fully understand how it works yet. :)
[18:46] < orphans> and when the ui has more elements you'd send something like /UITest/XYPad and /UITest/StepSequencer etc etc
[18:46] < Lawouach> You say "you send". Where?
[18:47] < Lawouach> I mean, where does OSC send the message?
[18:47] < orphans> that goes as the first part of the UDP packet, which can go to any other program which supports OSC
[18:47] < Lawouach> ah
[18:47] < Lawouach> alright
[18:47] < Lawouach> Which indeed means that the peer has to be able to understand that address
[18:48] < orphans> yeah, at the moment you tend to write your thing to make the music around the data you're getting in
[18:48] < orphans> there's starting to be a few standards emerging for how to do fairly standard stuff
[18:49] < Lawouach> I see so you're using SimplePeer as a dummy OSC message receiver for now
[18:49] < Lawouach> is that correct?
[18:50] < orphans> no, it's just the sender at the moment. I'd guess it'd be easier to have seperate sender and receiver components for flow of the graphline
[18:52] < Lawouach> Hmm I got confused because Kamaelia uses a backward meaning to SimplePeer's parameters :)
[18:52] < Lawouach> Well in line with the perspective aspect MS was discussing earlier.
[18:52] < Lawouach> Right
[18:52] < Lawouach> I understand your code flow now.
[18:53] < Lawouach> I would like to ask you the following things for this week
[18:53] < Lawouach> 1. Extensively documenting your code so that someone wouldn't have to ask you the above questions :)
[18:54] < orphans> yup
[18:54] < Lawouach> 2. Adding a simple ASCII workflow diagram as documentation
[18:54] < Lawouach> This would go into UITest.py
[18:54] < orphans> uh huh
[18:54] < Lawouach> as a module level __doc__ = "..."
[18:54] < Lawouach> Why documenting so early in the process?
[18:54] < Lawouach> Because documentation is boring
[18:55] < Lawouach> And doing it on the go is much better :)
[18:55] < orphans> yup :)
[18:55] < Lawouach> I have a spare question
[18:55] Reply: Hi, I'm a bot. I've been put here to answer faq's and log the channel. You can find the logs at http://yeoldeclue.com/logs/ Please don't ask 'any mentors here' since I'm logging for them. Yes, there is. If you just ask you question
[18:55] Reply: or post your idea, you may get a response - either from a mentor or fellow student or from someone reading the logs.
[18:55] Reply: Regarding applications we will be discussing applications (and maybe asking for improvements) until April 7th or 8th - remember no news may well be good news
[18:55] Reply: Some useful links/tips - use the template : http://kamaelia.sourceforge.net/SummerOfCode2006Template - base page: http://kamaelia.sourceforge.net/SummerOfCode
[18:55] Reply: Tips for a good application - q's to ask yourself: http://yeoldeclue.com/cgi-bin/blog/blog.cgi?rm=viewpost&nodeid=1206709783
[18:55] < orphans> was it one of them?
[18:55] < Lawouach> sensitive...
[18:55] < Lawouach> no no
[18:55] < Lawouach> here it is
[18:56] < Lawouach> Why in the Osc component do you do:
[18:56] < Lawouach> while self.dataReady('inbox':
[18:56] < Lawouach> I would have used an "if"
[18:58] < orphans> don't know really - if I understand right the while gets rid of all queued messages, whereas an if means that it does one message, yields, lets other stuff run, does another message
[18:58] < Lawouach> yes
[18:58] < Lawouach> that's correct
[18:58] < orphans> I'm not really sure which is better if I'm understanding it right
[18:58] < Lawouach> Well it's a bit of experimenting
[18:58] < Lawouach> Usually a if is good enough and it's rare you need a while
[18:59] < Lawouach> Experimenting will be needed later in the process to decide which is better for this use case :)
[18:59] < Lawouach> No worries for now
[18:59] < orphans> ok, I guess while is good for stuff where you get really bursty stuff which needs dealing with fast yes?
[19:00] < Lawouach> True but if that happens it may also means you're actually going to fast from the producer
[19:00] < Lawouach> That might not be good design either.
[19:00] < orphans> ooh, it's a conundrum :)
[19:01] < Lawouach> No ;)
[19:01] < Lawouach> It's called tuning
[19:01] < orphans> :)
[19:01] < Lawouach> Anyhow, leave it for now.
[19:01] < orphans> k, cool
[19:01] < Lawouach> Alright so this week I'd like:
[19:01] < Lawouach> 1. documentation as explained above
[19:02] < Lawouach> 2. that you start thinking about the package layout you'll be using for your application
[19:02] < Lawouach> You've been using sub-packages for Osc and UI which is good
[19:03] < Lawouach> But that was fine for a demo like UITest
[19:03] < Lawouach> We'll be discussing next week about setting up your package layout and you'll have to explain your rational for it :)
[19:04] < Lawouach> Hint: You usually don't get the package layout right the first time ;)
[19:04] < orphans> I thought I might not :)
[19:05] < Lawouach> Not just you
[19:05] < Lawouach> It's very rare to get it right and that's okay :)
[19:05] < Lawouach> Nonetheless I'd like you to give it a shot
[19:05] < Lawouach> BUT
[19:05] < Lawouach> All of this ONLY if you have the time
[19:05] < Lawouach> Until your exams are over we'll be easy on you ;)
[19:06] < orphans> ok, cheers - I'll do what I can
[19:06] < Lawouach> cool
[19:06] < Lawouach> Maybe what is more important is the package layout
[19:07] < Lawouach> So leave the documentation aside if you don't have the time.
[19:07] < orphans> ok sure - I'll get the old grey cells ticking over on the layout
[19:07] < Lawouach> I'd rather you thinking about the package layout as it means you'll be thinking about the actual application
[19:07] < Lawouach> good
[19:07] < Lawouach> well that's enough for this evening, we're still at the stage of setting things up
[19:07] < Lawouach> Go and enjoy the weather :)
[19:08] < orphans> yeah, cool
[19:08] < orphans> hopefully make it to the beer garden for a couple this evening
[19:08] < Lawouach> :)
[19:08] < orphans> but before that I need to fully understand the mean field theory of magnetism, so I'm afraid it'll have to wait
[19:09] < orphans> *yaawwwwnnn*
[19:09] < vmlemon__> Kamaeliafy it
[19:09] < Lawouach> :)
[19:10] < orphans> I could, domains may well form somewhere, but it would probably make me cry...
[19:10] *** orphans goes to sob over difficult maths
[19:11] < orphans> cheers for the help Lawouach
[19:11] < Lawouach> np
[19:11] < Lawouach> thanks for the explanation
[19:16] *** MS- has joined #kamaelia
[19:16] < MS-> evening
[19:17] < MS-> j_baker: sorry for turning up later than I intended - I need to postpone our meeting until 9pm probably
[19:17] < MS-> (9pm local, I guess 3pm for you)
[19:18] < j_baker> np
[19:23] *** bcarlyon|ubuntu_ has joined #kamaelia
[19:40] < j_baker> ZOMG!!!!!!
[19:40] < j_baker> I passed the class that I did so horribly on the final
[19:42] < j_baker> (albeit with a C, but at least that means I don't have to re-take it)
[19:49] < Lawouach> congrats!
[19:49] < Lawouach> :)
[19:50] < j_baker> Modern digital system design. I'll be happy to never touch another Flip Flop or Shift Register in my life.
[19:53] < Lawouach> MS-: http://trac.defuze.org/wiki/KamaeliaQuickWord
[19:54] < Lawouach> Just a quick word so that people interested in my XMPP library can quickly see what Kamaelia is about.
[19:55] < j_baker> That's a pretty good idea. I find it a lot easier to guage if a library or language works for me by seeing sample syntax.
[19:57] *** bcarlyon|laptop has joined #kamaelia
[20:07] < MS-> back
[20:07] < MS-> congrats on passing the class :-)
[20:08] *** MS- likes that "quick word" page.
[20:08] < MS-> It's similar to http://kamaelia.sourceforge.net/Introduction
[20:08] < MS-> But a different sort of angle
[20:09] < j_baker> Did you see my group message MS-?
[20:09] *** MS- looks
[20:09] < j_baker> (the ready to merge one)
[20:11] < MS-> I see - I didn't see that - I saw the checkin of the new branch and was checking that out
[20:11] < MS-> :)
[20:11] < j_baker> I mistyped Minimal in the name of the branch. What's the best way to correct that?
[20:11] < MS-> private_JMB_AddedIndexCapabilityToMimimal/diff.txt isn't in the tree
[20:12] < MS-> The best way to correct is to not worry about it
[20:12] < j_baker> Ok. :)]
[20:12] < MS-> renaming it would cause more problems than it's worth :)
[20:12] < j_baker> I'll add the diff file (I probably just forgot to svn add it)
[20:13] < MS-> Don't worry about adding the diff
[20:13] < j_baker> I just did :)
[20:13] < MS-> hm
[20:13] < MS-> You haven't commited yet?
[20:13] < j_baker> I checked it in. Should I have left it out?
[20:13] < MS-> (it's better to only commit things on the branch you actually want there :-) )
[20:13] < MS-> generally, yes
[20:14] < MS-> The aim of the diff really is so you can summarise the changes
[20:14] < MS-> Once you're used to it, it's easier to work through the diff to ensure you've not missed anything
[20:14] < j_baker> Ok. Should I remove it then?
[20:14] < MS-> No, don't worry :)
[20:16] < j_baker> I also posted this to the groups page, but is there any way to do this without checking out the entire repository?
[20:17] < MS-> yes, just checkout the parts you need really
[20:17] < MS-> which probably sounds a bit strange
[20:18] < MS-> This diff looks really wierd
[20:18] < MS-> svn diff -r< bp>:HEAD that is
[20:18] < MS-> since it now contains a copy of the diff
[20:18] < MS-> so it has a diff within a diff
[20:18] < MS-> I'll get rid of the
[20:18] < MS-> that rather
[20:19] < j_baker> Working with SVN is a bit of a learning experience.
[20:20] < MS-> Regarding this comment though : "Do I necessarily have to go about creating my own branch if I'm just fixing one or two files?" the answer is yes
[20:20] < MS-> It is indeed
[20:20] < MS-> But then you seem to be doing very well with fighting it so far :)
[20:21] < MS-> OK, regarding the things we've been dealing with in other mentor times...
[20:21] < MS-> The set of things I've wanted to cover have been
[20:21] < MS-> getting up to speed with the codebase, exploring it for what you need, and getting up to speed with subversion.
[20:22] < MS-> I don't need to cover those with you, since you're doing all those :)
[20:22] < MS-> So I'll skip straight to the admin/paperwork stuff
[20:22] < j_baker> Ok.
[20:22] < MS-> We've chatted about the contributor agreement specifically.
[20:23] < MS-> Now I've had a chance to chat with uk people so far about this generally, if you're happy with the idea, I'll skip straight to the practicalities
[20:23] < MS-> I was writing this really nice email the other day to the group describing it etc, but my browser crashed
[20:24] < MS-> so it might be easier to answer q's here
[20:24] < MS-> some highlights though - The actual agreement *has* been checked by the BBC lawyers
[20:24] < MS-> and it's based on the PSF's agreement which was also drawn up by lawyers
[20:25] < MS-> It leaves you owning your code, and just (effectively) grants a BSD license on the code, with the option to relicense it under Kamaelia's normal license - ie the MPL/GPL/LGPL trilicense
[20:25] < MS-> (which is the "keep almost everyone happy" license)
[20:26] < j_baker> Heh
[20:26] < j_baker> Yeah. Ok, where is the contributor agreement again?
[20:27] *** MS- grabs link
[20:27] < MS-> http://kamaelia.sourceforge.net/Developers/SampleContributorAgreement
[20:27] < MS-> The bit we need is the bit between the horizontal rules
[20:27] < MS-> You change all the bits in green to your information
[20:28] < MS-> You remove the date in purple
[20:28] < MS-> The purple initials "JLB" should be changed to JMB
[20:29] < MS-> and then later on, when there's code you're happy to put under the agreement, you would write in the source "Licensed to the BBC under a Contributor Agreement: JLB"
[20:29] < MS-> JMB rather
[20:30] < MS-> Also, due to reasons FAR too painful to go into, it needs to be a paper copy
[20:30] < MS-> Which needs to be posted to:
[20:32] < MS-> Michael Sparks, Senior Research Engineer, c/o BBC TV Centre, London, W12 7RJ
[20:32] < MS-> (The title is to allow the postal people to ensure it gets routed to the right location)
[20:33] < j_baker> I can do that.
[20:33] < MS-> Cool
[20:34] < MS-> Well in which case, that's about all I really wanted to raise.
[20:34] < MS-> I'm really pleased to see you doing all the things you're doing BTW :)
[20:34] < j_baker> np :)
[20:35] < MS-> Asking q's on the list is also really appreciated - answers on the list also mean that people can google for q's and a's when they arise
[20:35] < MS-> Which means answering there actually means it reduces the chances of needing to answer it a second time :)
[20:36] < j_baker> I'll keep that in mind for any general questions.
[20:36] < j_baker> I haven't gotten much of a chance to look at the MoreComplexServer though. Is there any major functional difference I should be aware of?
[20:37] < MS-> It's more capable than SimpleServer essentially
[20:37] < MS-> It also does things like forward connection details
[20:37] < MS-> Designed to allow drop in replacement of the TCPServer class etc
[20:39] < j_baker> I see.
[20:39] < MS-> The changes were really created originally to allow passing through the remote ip address
[20:39] < MS-> of a web client to a web serving protocol
[20:40] < MS-> It's also turned out to be used in the greylisting code though
[20:40] < MS-> since that *also* needs the same functionality
[20:40] < j_baker> And I'm assuming that my project will need that as well
[20:41] < j_baker> Assuming I do it without XMPP that is and just use the intermediary as a passthrough
[20:41] < MS-> Yep
[20:41] < MS-> It will
[20:41] < MS-> In the short term you can run your code against my branch (I'll merge you Minimal handler there without worries)
[20:42] < MS-> But in the longer term I'll create a branch to merge more complex server onto trunk
[20:42] < MS-> Better name suggestions welcome
[20:43] < MS-> I was toying with the idea of doing this yesterday for the example branch, but it's a much more substantial change and figured something simipler made a better example
[20:43] < j_baker> Well, for the purposes of my project, I was planning on naming the component "ServerCore" since I think that's a more accurate description of what it does IMO.
[20:43] < MS-> Naming *which* component that?
[20:44] < j_baker> Either SimpleServer or MoreComplexServer
[20:44] < MS-> It may be more appropriate for MoreComplexServer
[20:45] < j_baker> Yeah, that is true since SimpleServer has a couple of standard components.
[20:46] < MS-> I'll have a ponder, since ServerCore does sound OK. I'm not convinced yet, but then it's definitely than "more complex server"
[20:46] < j_baker> Ok, now also say I want to make a log for my server. Do you think it would be more beneficial to use a component for that or to use a set of utility functions?
[20:46] < MS-> Component
[20:47] < MS-> The trick you may want to do
[20:47] < MS-> is to attach a "log" outbox to every component, and send messages to it
[20:47] < j_baker> That's what I was thinking.
[20:47] < MS-> Then leave it to the user of the component to send the log somewhere sensible
[20:48] < MS-> Also, if you *don't* connect anything to that "log" outbox, then data *won't* pile up there
[20:49] < MS-> The nice solution is to connect all the "log" outboxes to PublishTo() components from the backplane
[20:49] < MS-> And have a backplane called "logging"
[20:49] < j_baker> I hadn't thought of that.
[20:50] < MS-> there are issues here - if you do logging "right" (ie able to capture everywhere) but _wrong_ (you *do* actually capture everywhere) then you can bring your code to its knees
[20:51] < MS-> :)
[20:51] < j_baker> Ok.
[20:52] < j_baker> So then I would just want to restrict it to core components that can publish to the log?
[20:52] < MS-> That's an optimisation
[20:52] < MS-> The core thing to think about really is "get it working, make it work *right*, make it work fast"
[20:52] < MS-> optimisation falls into the last category
[20:53] < j_baker> I see. So for now I should focus on making it work "right but wrong"?
[20:53] < MS-> Well, preferably "right but right", but "right but wrong, but right enough to be a good start" is a good idea :)
[20:54] < MS-> If you know clearly enough what you want, you *can* use test driven development with kamaelia
[20:55] < j_baker> Ok. Last question: If I start working on the WSGI adapter, is it going to be easier for me to import the module containing the application object or to exec it?
[20:55] < MS-> which theoretically jumps straight to the second item, but the reality is it really gives you a controlled mechanism for doing thei first such that it moves towards the second
[20:56] < j_baker> (at least to start off with)
[20:56] < MS-> Neither really - it should be the other way round
[20:56] < MS-> Suppose the last line of
[20:56] < MS-> /Sketches/MPS/KamaeliaWebServer.py
[20:56] < MS-> ie
[20:56] < MS-> WebServer().run()
[20:56] < MS-> said instead:
[20:57] < MS-> if __name__ == "__main__":
[20:57] < MS-> WebServer().run()
[20:57] < MS-> You could, in another file, write:
[20:57] < MS-> from KamaeliaWebServer import WebServer
[20:58] < MS-> from KamaeliaWebServer import HTML_WRAP, simple_app
[20:58] < MS-> WebServer(
[20:58] < MS-> routing = [
[20:58] < MS-> ["/wsgi", WSGIHandler("/wsgi", HTML_WRAP(simple_app)) ],
[20:58] < MS-> ]
[20:58] < MS-> ).run()
[20:58] < MS-> Note that HTML_WRAP(simple_app) is a simple wsgi application
[20:59] < MS-> Does that make sense?
[20:59] < MS-> The work needed on that code is more "finish off support" rather than have to do lots of stuff :)
[21:00] < MS-> I would hope, anyway
[21:00] < j_baker> Ok, so then I'll worry about that once I get the support finished off.
[21:01] < MS-> It's easy to find the bits that need doing in that file BTW
[21:01] < MS-> it's labelled "required"
[21:01] < MS-> in _WSGIHandler
[21:01] < MS-> in main()
[21:01] < MS-> it has required = "*** REQUIRED FIX THIS ***"
[21:01] < MS-> Then for all the things not done
[21:01] < MS-> it has
[21:01] < MS-> self.environ["REQUEST_METHOD"] = required # Required
[21:02] < MS-> And in a fair number of locations, the description of what's required :)
[21:02] < MS-> There's also:
[21:02] < MS-> consider = " **CONSIDER ADDING THIS -- eg: "
[21:02] < MS-> Which is used to give example values
[21:02] < MS-> for things which I think *don't* come under "MUST"'s
[21:03] < j_baker> Ok, well that gives me some stuff to think about and/or work on this next week.
[21:03] < MS-> cool
[21:03] < MS-> I may actually make that small change
[21:04] < MS-> and put the webserver in a subdir
[21:04] < MS-> Might make things clearer
[21:04] *** MS- goes to review two branches
[21:04] *** mhrd-home has joined #kamaelia
[21:04] < MS-> j_baker: Many thanks for stopping by :)
[21:05] < MS-> mhrd-home: evening
[21:05] < j_baker> np. Thanks for your help.
[21:05] < MS-> j_baker: you're welcome :)
[21:05] < mhrd-home> hi :)
[21:14] *** bcarlyon|laptop has joined #kamaelia
[21:25] *** MS- reads through Lawouach's change, and ponders
[21:33] < j_baker> Interesting. Apparently, you can get Wing's IDE for free if you're using it on an open source project.
[21:40] *** vmlemon_ has joined #kamaelia
[21:42] < vmlemon_> Hi
[21:42] < mhrd-home> MS-: should be able to look at your branch tomorrow evening
[21:42] < MS-> mhrd-home: Cool :)
[21:43] < mhrd-home> oops, meant to hit del, not enter (just posted something identical to the list) :-)
[21:43] < MS-> heh
[21:43] < vmlemon_> Yay, I finally got Wi-Fi working again
[21:44] < vmlemon_> I think that's now all of the hardware in my laptop functional under Fedora
[21:44] < vmlemon_> Although the useless Wi-Fi/RF killswitch doesn't function
[21:45] < vmlemon_> (I never used it, anyway)
[21:50] < MS-> vmlemon_: cool
[21:51] < vmlemon_> I haven't had Ethernet functional under Linux at all since I got it, until now
[21:51] < MS-> wow
[21:51] < vmlemon_> (Rather annoyingly, since Ethernet is one of those things that Just Works® 99.99% of the time for most people)
[21:52] < vmlemon_> ;)
[21:52] < MS-> indeed
[21:53] < vmlemon_> I can think of other things that I'd expect to not work immediately
[21:53] < vmlemon_> (IrDA and audio being two)
[21:53] < vmlemon_> but never Ethernet
[21:54] < vmlemon_> I got it last December, so it's quite a long time
[21:57] < vmlemon_> 64-bit support is probably the only feature I can't use
[21:58] < vmlemon_> At least not until the stupid AR5007EG driver drama is resolved with Atheros and the MadWifi folks, which is seemingly taking an eternity
[21:59] < vmlemon_> Unless I didn't want to use use Wi-Fi, I could Just Go 64-Bit
[21:59] < vmlemon_> although I don't see any advantage to it
[22:03] < vmlemon_> Hah, "This SF.net email is sponsored by: Microsoft"
[22:03] < vmlemon_> I'd like to see that tacked to the bottom of a lengthy anti-Microsoft e-mail ;)
[22:07] < Davbo> Running Fedora 9 vmlemon_?
[22:07] < vmlemon_> Fedora 8
[22:07] < Davbo> is 9 even out yet actually?
[22:08] *** Davbo sees it comes out tomorrow 
[22:08] < vmlemon_> Not sure
[22:08] < vmlemon_> Linux Sapporo.home 2.6.24.5-85.fc8 #1 SMP Sat Apr 19 12:39:34 EDT 2008 i686 i686 i386 GNU/Linux
[22:08] < Davbo> Perhaps you'd have been better waiting for 9
[22:08] < Davbo> good review over at the Reg i was reading earlier
[22:08] < vmlemon_> What a pain in the butt this kernel version has been, although it's been worth it, seeing as I now have working Ethernet for the first time since December 2007
[22:09] < vmlemon_> :|
[22:09] < Davbo> lol yeah i noticed that hehe
[22:09] < Davbo> PCLinuxOS is supposed to be good for things "just working"
[22:09] < Davbo> never used it myself
[22:10] < vmlemon_> I don't know of any other system where it's taken almost a year to get something so straightforward and vital as that working...
[22:10] < vmlemon_> And I've used Linux for nearly 3 years now
[22:11] < Davbo> it's unbelievable really
[22:11] < vmlemon_> 00:04.0 Ethernet controller: Silicon Integrated Systems [SiS] 191 Gigabit Ethernet Adapter (rev 02) < - The evil Ethernet device
[22:11] < vmlemon_> ;)
[22:12] < vmlemon_> It's high up in the ranks of truly awful hardware in my opinion with VIA UniCrap, erm UniChrome video chipsets
[22:12] < Davbo> Can't believe that, it's even SiS not really rare
[22:14] < vmlemon_> I think that The World's Most Common IrDA Chipset (uses the smsc-ircc/smsc-ircc2 driver) can join it too, after the torment it caused me when trying to make it work on Gentoo, and every version of Ubuntu except 2 particular ones, and only when the sun and moon are perfectly aligned...
[22:14] < MS-> Lawouach: Just a note to say that I won't be able to merge your change tonight
[22:15] < MS-> What I'm thinking of doing is to change the code slightly to achieve the same goal, but hopefully with a "better" separation of concerns
[22:15] < vmlemon_> (Or something like that)
[22:15] < Davbo> So glad we log this channel, I was really out of it earlier on MS- just re-reading our chat :)
[22:15] < MS-> I'll have a play and check in a change and see if it makes sense.
[22:16] < MS-> Davbo: Heh
[22:16] < Davbo> I was telling people from my group that i was going to miss the meeting and apologising neglecting to fact the meeting is tomorrow :P
[22:17] < Davbo> I'll add the things we discussed to my "remember the milk" - which i'm vowing to start using now :)
[22:17] < Davbo> (to-do list thing)
[22:17] < vmlemon_> http://paster.dazjorz.com/?a=rawpaste&p=2974 - a dmesg for this machine, if anyone's curious
[22:17] < vmlemon_> What's Remember The Milk?
[22:17] < vmlemon_> Aah
[22:18] < Davbo> I used it ages ago but stopped last holiday (when i had nothing to do ) :D
[22:18] < vmlemon_> Davbo: Will it go to the shop for you and buy more milk when it runs out? ;)
[22:19] < MS-> vmlemon_:Surely that depends on whether Davbo ever hooks up his NXT component to anything?
[22:20] < Davbo> :D
[22:20] < vmlemon_> Hah
[22:20] < MS-> OK, I need sleep. (really tired for some reason)
[22:20] < MS-> I'm off, night
[22:20] *** MS- is now known as ms-away
[22:20] < Davbo> night ms-away
[22:20] < vmlemon_> Kamaelia: MilkPurchase? ;(
[22:20] < vmlemon_> ;)
[22:20] < Davbo> hehe
[22:21] < vmlemon_> Just try to stop the cat getting it's paws on the milk, first
[22:22] < Davbo> Anyone used GoogleGears?
[22:22] < vmlemon_> I like the cow... It's certainly "original", to say the least ;)
[22:22] < vmlemon_> Yes, once
[22:23] < Davbo> Try it out vmlemon_ it's great
[22:23] < vmlemon_> Or at least I played with the sample apps
[22:23] < Davbo> (if you're like me and forget what you have to do)
[22:23] < vmlemon_> 'Gears? Or the Milk thing?
[22:24] < vmlemon_> The GMail integration mentioned on the blog sounds interesting
[22:25] < Davbo> I *just* installed that
[22:25] < Davbo> new since i used it last
[22:25] *** vmlemon_ wonders if an S60 client for Remember The Milk exists
[22:25] < Davbo> you get an extension for firefox and presumably it runs a bit like Greasemonkey
[22:25] < vmlemon_> o.O http://blog.rememberthemilk.com/img/bob_closeup.jpg
[22:27] < vmlemon_> Hmm, http://blog.rememberthemilk.com/2007/09/why-monkey-and-not-cow.html
[22:27] < Davbo> lol :)
[22:27] < Davbo> http://www.rememberthemilk.com/services/mobile/
[22:28] < vmlemon_> Hah, "After taking the cow to the counter and paying $9.99 to liberate it, the nice post office worker placed it in its own special bag (and told us to be careful not to let it suffocate!)"
[22:29] < Davbo> ooo!
[22:29] < Davbo> it's also now on Twitter
[22:29] < Davbo> another thing i'd like to start using
[22:30] < Davbo> problem with Twitter is you need to convince others to use it
[22:30] < vmlemon_> Hah, "rolypolykitty says: Beta, it says so right next to her!" (response to "What is the RTM cow called?" on http://www.rememberthemilk.com/forums/help/321/)
[22:31] *** vmlemon_ doesn't understand the appeal of Twitter
[22:31] < Davbo> I think it's easy to get into really.
[22:31] < Davbo> but it's only good if you get friends to use it
[22:36] < vmlemon_> Hah, "Take over the world" is listed as a To-Do item on http://static.rememberthemilk.com/img/hp_ss_gmail.png
[22:37] < vmlemon_> I don't think Remember The Milk can be much help, there
[22:42] < vmlemon_> Yay, http://www.rememberthemilk.com/upgrade/
[22:43] < vmlemon_> "A warm fuzzy feeling for supporting RTM" and "Making Bob happy" sound like good enough reasons ;)
[22:45] *** vmlemon_ signs up for Remember The Milk...
[22:47] < Davbo> yay :)
[22:48] < Davbo> you must admit it's cool to be able to send an sms to update it though :)
[22:49] < vmlemon_> Hmm, "Greasemonkey is an integral part of the web experience for many experienced users. Google acknowledges that some people are going to change their own experience of our web applications regardless of what we do. Resistance, as they say, is futile. It would also be somewhat hypocritical. After all, a Google employee wrote Greasemonkey in the first place, another wrote these scripts to add functionality to Gmail, and a third wrote two books
[22:49] < vmlemon_> on the subject (and these docs)."
[22:49] < Davbo> oh does it use Greasemonkey ?
[22:50] < vmlemon_> Not sure
[22:51] < vmlemon_> Tried 43 Things?
[22:51] < j_baker> Sigh... so YDL is perfect for me thus far aside from being a lot slower than openSUSE
[22:52] < j_baker> Maybe I need to upgrade the RAM on my G5.
[22:53] < j_baker> Running eclipse is painfully slow.
[22:53] < vmlemon_> Night
[22:54] < j_baker> night
[23:15] *** j_baker has joined #kamaelia
[23:27] *** mhrd-home has parted #kamaelia
[23:47] *** bcarlyon|laptop has joined #kamaelia