[02:25] *** vmlemon__ has joined #kamaelia
[02:25] *** vmlemon__ is now known as vmlemon_
[06:39] *** Lawouach_ has joined #kamaelia
[06:39] < Lawouach_> morning
[07:34] *** mhrd-afk is now known as mhrd
[07:44] *** Chong- has joined #kamaelia
[07:50] < Lawouach_> http://www.dehora.net/journal/2008/07/06/3-12-minutes-to-sort-a-terabyte-hadoops-code-structure/ < -- fascinating :)
[08:20] *** orphans has joined #kamaelia
[08:21] < MS-> morning
[08:22] < orphans> morning MS-
[08:22] < orphans> how's it going?
[08:22] < MS-> Just reading an annoying message from Pablo
[08:22] < orphans> :(
[08:23] < MS-> Anything I'd say here would be a moan, and that's unproductive
[08:24] < MS-> Suffice to say, it would be less of a resource drain for me to sit down and write the test framework that would be useful than the chasing I've had to do with pablo
[08:24] < MS-> and I'm still not getting the information I need from him
[08:24] < MS-> And he's still not asking what is actually needed
[08:24] < MS-> He's also not even trying to listen and take on board criticism
[08:25] < MS-> Heck at initially for the first few weeks it was mainly requests really
[08:26] < orphans> mhm. I know I would have found it very difficult if I wasn't on-channel and asking annoying questions as much as I am
[08:26] < MS-> heh, you call it annoying questions.
[08:26] < MS-> It actually means that we have a better idea of what you're doing
[08:27] < MS-> :)
[08:27] < MS-> Along with checkin messages etc, they form a part of the mental picture that we all naturally form around each others work.
[08:28] < orphans> yeah, it's definitely easier to see what people are up to after a few questions back and forth
[08:29] < MS-> absolutely
[08:29] < mhrd> MS- : hi, thanks for advice :)
[08:30] < MS-> orphans: heck, even I'll post random questions about what I'm doing, partly for that sort of reason
[08:30] < MS-> mhrd: You're welcome
[08:30] < orphans> MS-, yeah, plus it's interesting to see what you get paid to do :)
[08:31] < MS-> heh
[08:31] < MS-> Currently I'm being paid for this:
[08:31] < MS-> http://code.google.com/p/facilitate/source/list
[08:31] < MS-> and for this:
[08:32] < MS-> http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/branches/private_MPS_Participate/Apps/FileProcessor/App/BatchFileProcessor.py?revision=4819&view=markup
[08:33] < orphans> do they just allow you to work open source as standard now for stuff which isn't top secret?
[08:33] < MS-> Nope
[08:33] < MS-> Though I've discovered the rule
[08:33] < MS-> "find someone who feels able to say yes"
[08:33] < MS-> If it contributes to an existing project, there's a standing rule that it can be open as well
[08:34] < MS-> hence the FileProcessor can be open, since it contributes to kamaelia
[08:34] < MS-> (yes, I'm aware of the double think there)
[08:34] < Lawouach_> hi MS-
[08:34] < orphans> :)
[08:34] < MS-> Lawouach_: Hiya
[08:35] < orphans> < = coffee
[08:38] < Lawouach_> You're inferior to coffee mate?
[08:38] < Lawouach_> don't be so hard on yourself
[08:39] < MS-> He didn't assert whether it's true or false :-)
[08:39] < MS-> I thought he was somehow realising where my coffee was since it is < ---- thataway
[08:40] < orphans> :)
[08:41] < orphans> I am indeed quite severely inferior to coffee, but I'm afraid that it's -------------> thataway
[08:43] < mhrd> Chong-: sounds like you've made some cool progress with the 3d topology viewer - will try to take a look later today - unfortunately had a small cascade of emergencies of various kinds to deal with over the weekend - hence I didn't get back to you.
[08:44] < MS-> mhrd: It's quite a bit of progress
[08:45] < MS-> He's got some minor issues regarding rotations (local transform vs global)
[08:45] < MS-> Essentially due to rotating only around local axes rather than global. But it's definitely cool progress :)
[08:46] < mhrd> I saw your discussion on that - I take it the code is currently just modifying the X,Y,Z rotiation terms in the rotation matrix - whereas you were after "pressing the rotate about X key rotates about the X axis from my viewpoint, not the transformed X axis of the rotated object"?
[08:46] < mhrd> cool
[08:48] < MS-> I'm expecting the rotation of the system to make sense...
[08:48] < MS-> :)
[08:49] < MS-> If you run it
[08:49] < MS-> press left 4 times
[08:49] < MS-> and then rotate by pressing "up"
[08:49] < MS-> you'll see that the collection of objects correctly rotate around the global x axis
[08:49] < MS-> But the actual objects themselves rotate around a local X axis, which is parallel now with the global z axis
[08:50] < mhrd> as opposed to around the local X axis that has been transformed by the previous "press left 4 times"
[08:50] < MS-> it looks very broken :-)
[08:50] < MS-> Far easier to show than explain with text really
[08:50] < MS-> :)
[08:50] < MS-> It's most obvious if you look at Node1 in the middle
[08:50] < MS-> :)
[08:51] *** mhrd not run the code yet - preparing for a meeting in 20 mins :)
[08:51] < MS-> :)
[08:51] < mhrd> I'm pretty confident I understand what you're getting at now though :)
[08:51] < MS-> It's the sort of bug that the first time you come across it drives you barmy
[08:51] < MS-> and can spend hours or days chasing until you find the "right" answer
[08:51] < MS-> But to someone who knows what's going on its a 2 second fix
[08:52] < MS-> Been too long since I did any open GL for it to be the latter for me at the moment, so focussing on the "what's borked"
[08:56] < MS-> orphans: No the think about wtf is that is reality for most jobs
[08:56] < MS-> s/think/thing/
[08:57] < MS-> It's why I tend not to read the daily wtf myself
[08:57] < MS-> It's kinda a big part of GSOC in teaching people where their WTF's are
[08:57] < MS-> so that you hope your code never makes it up there :-)
[08:57] < orphans> :)
[09:00] < Lawouach_> :)
[09:01] *** Lawouach_ wonders if Jason wasn't unconsciensly refering to meta-class in his message to the list MS- just reponded to
[09:02] < MS-> It's the sort of thing that could be solved with a meta-class.
[09:02] < MS-> Problem I have with meta-classes is that they sprinkle magic across code, making it harder in the end to maintain (IMO)
[09:03] < MS-> (generally speaking that is, not always true I guess)
[09:06] < Lawouach_> I'm not a big fan of them
[09:06] < Lawouach_> Everytime I met them I had to re-read the documentation to fully appreciate their impact
[09:07] < MS-> I started off thinking that metaclasses would be useful in kamaelia
[09:07] < MS-> Then it shrank and shrank and shrank and shrank
[09:07] < MS-> All it does now is implement __super
[09:08] < MS-> which is a mistake, and will be removed in Axon 2.0
[09:08] < MS-> Which is a "release date and feature list yet to be decided"
[09:08] < MS-> kind of thing
[09:08] < MS-> But probably around the same time as Kamaelia 1.0
[09:09] < MS-> which I've decided is 2010 (10 --> 1.0)
[09:09] < MS-> I probably ought to post that versioning idea to the list
[09:09] < MS-> essentially want to get to version 0.8 this year
[09:10] < MS-> so that we have 2008 -> 08 --> 0.8
[09:10] < MS-> Then next year move to 0.9, with point releases through the year as 0.9.2 (2009/2), 0.9.6 (2009/June) etc
[09:13] < Lawouach_> Interesting way of releasing software :)
[09:13] < MS-> Well, it strikes me as a one off opportunity really :)
[09:14] < MS-> Ubuntu started it really with the 8.4 type numbering, and twisted have decided to copy them, but they get complaints on their list about people wondering what's happened between 2.5 and 8.x
[09:14] < MS-> Whereas we're coincidentally at a much nicer place :-)
[09:16] < Lawouach_> :)
[09:17] < MS-> Also, gives an implicit definite date/target for a 1.0 release
[09:17] < MS-> And hence a way of building back a timeline
[09:17] < MS-> which is important IMO
[09:19] < MS-> Currently rewriting and documenting one of pablo's "examples"
[09:20] < Lawouach_> hmm
[09:20] < MS-> It's taking longer than I thought so will probably just do one, and then ask him to do the other 3, largely as an exercise in showing him the sort of thing his examples need to have
[09:20] < Lawouach_> He just sent an email that he ought to have sent in his first week :)
[09:20] < Lawouach_> But better later than nevre :)
[09:20] < Lawouach_> never
[09:20] < MS-> indeed
[09:21] < MS-> Chong-, orphans - I expect you to answer pablo :-)
[09:21] < MS-> I will as well, but just noting that I kinda expect it
[09:21] < MS-> I know you don't have to, but he's trying to help you :)
[09:24] < orphans> quick "how should I do this" question - I'm working out how to store notes in the piano roll - basically a series of pygame Rects with an associated start and end time, note number, velocity etc. The hard bit is I need to work out whether I have clicked in a note, and don't particularly want to be looping over all of the notes using collidepoint(), but could also do with being able to access them by id for scheduling
[09:24] < orphans> MS-, will reply in a min
[09:25] < MS-> orphans: ta :)
[09:25] < MS-> orphans: IRC has a 256 char limit...
[09:25] < orphans> gah
[09:25] < MS-> cf http://yeoldeclue.com/logs/kamaelia2008-07-07_log.html
[09:25] *** mhrd is now known as mhrd-mtgs
[09:26] < orphans> ah, that's all you got, was about to expand a bit :)
[09:27] < orphans> I was thinking of maybe doing something to do with overwriting __in__ so I can do if thisTime in thisListOfNotes:
[09:27] < orphans> but that seems kinda ugly, and possibly not particularly helpful wrt looping
[09:29] < orphans> or maybe some mammoth list of lists of dicts
[09:30] < MS-> Oh, you want to know if a button was clicked inside a rect?
[09:30] < MS-> That's a standard sort of question on the pygame list.
[09:30] < orphans> I kinda need to know which rect it's clicked inside
[09:30] < MS-> Judicious use of google may give you a nice solution
[09:30] < MS-> My suggestion though initially is this:
[09:31] < MS-> *pick a simple solution*
[09:31] < MS-> Implement that, then find the better way of doing it
[09:31] < Lawouach_> I agree with MS-
[09:31] < Lawouach_> What matters is that your "API" doesn't change based on its implementation :)
[09:31] < MS-> Aside from anything else, the simple solution helps explain in more detail what you want to do
[09:32] < Lawouach_> In other words, for now don't worry about the inside, worry about the outside and what information you need in and out
[09:32] < orphans> ok, in that case it's not too bad - yeah, the api should stay constant
[09:32] < orphans> well, not too bad for now :)
[09:33] < Lawouach_> I'll give you an example, headstock relies entirely on bridge to parse a XML stream. I've known for a while that bridge isn't as fast nor light as it ought to be but I haven't cared either so much that it would prevent me from making headstock a reality.
[09:33] < Lawouach_> Once headstock is stable enough, I'll improve bridge's performance.
[09:34] < orphans> ok, cool
[09:48] *** Davbo has joined #kamaelia
[09:48] < MS-> Heya Davbo
[09:51] < MS-> How goes?
[09:52] < Davbo> Hey MS-, i'm good. Yourself?
[09:52] < MS-> Not bad.
[09:53] < MS-> Getting there, you know :)
[09:57] < Chong-> mhrd: np. Thanks in advance. BTW, I have just fixed one buy MS- had found, so it should be more enjoyable :-). Any comments are welcome :-)
[09:57] < MS-> Chong-: ta
[09:57] < MS-> Davbo: Since we've been keeping up to date - I'm pretty happy that you're on track etc
[09:57] < MS-> unless there's anything you want to raise at the moment?
[09:58] < Chong-> MS-: sorry for missing your message. I was just busy with fixing the rotation problem. but the good news is that it has been fixed, Please have a look when you get time. Thanks.
[09:58] < Davbo> Not really, are mid-terms today?
[09:58] < Chong-> MS-: morning :-)
[10:00] < MS-> Chong-: Much better
[10:00] < MS-> :)
[10:00] < MS-> One interesting little issue at the moment:
[10:00] < MS-> if you rotate it *LOTS*
[10:00] < MS-> and LOTS
[10:00] < Chong-> MS-: thanks :-). Any more comments?
[10:00] < MS-> then the whole thing slows down !
[10:00] < MS-> I can guess why :)
[10:01] *** Chong- trying
[10:01] < MS-> Initially very responsive
[10:01] < MS-> (very)
[10:01] *** Davbo sees we have a week to do the Mid-term survey
[10:02] < Chong-> MS-: I think I know too :-) becuase...
[10:02] < MS-> eg rotate 40 times left :)
[10:02] < MS-> You just append the rotations or something at a guess
[10:02] < Chong-> the rotationList keep increasing, so it becomes slow
[10:02] < MS-> But, it works
[10:02] < Chong-> yes.
[10:02] < MS-> That's the first most important step :)
[10:02] < MS-> congrats :)
[10:02] < MS-> very nice :)
[10:03] < MS-> You do realise the wish list will just grow now ?
[10:03] < MS-> :)
[10:03] < Chong-> MS-: thanks. because the rotation order matters, so I have to remember every rotation operation.
[10:03] *** bcarlyon|laptop has joined #kamaelia
[10:03] < Davbo> Can't you just add up all the last rotations?
[10:04] < Chong-> MS-: the next one should be able to rotate selected particles
[10:04] < MS-> I think your next step should be optimisation before that
[10:05] < MS-> Largely because you don't *really* have to remember every rotation
[10:05] < Davbo> and just store the sum of rotations (speculation)
[10:05] < Chong-> Davbo: no. I did it before. because the rotation order matters
[10:05] < MS-> Just that you have a total of rotation about X and total rotation about Y for the global system
[10:06] < Davbo> order shouldn't matter really Chong-
[10:06] < MS-> Chong-: You can do it. (after all, if you think about it, Open GL *has* to do it for the global viewing transform)
[10:06] < MS-> Davbo: It matters due to Chong's been using local rather than global rotations
[10:06] < MS-> If you're tracking global (which this should be...), then the order doesn't matter
[10:07] < Davbo> if someone is there tapping left then right repeatedly it'd make sense to store 0 rather than +90 -90 +90 -90
[10:07] < MS-> But it works - it does need optimisation :)
[10:07] < Davbo> oh fair enough
[10:07] < Chong-> MS-: I have thought about it. But if you rotate around x first, and then y, then x, then y, accumulate x, y, z would fail.
[10:07] < MS-> If you pick up a book
[10:07] < MS-> you'll see
[10:07] < MS-> :)
[10:08] < MS-> or a cat
[10:08] < MS-> though I suspect that's harder to get a hold of
[10:08] < Chong-> :D
[10:09] < MS-> Davbo: I take it you're happy at the moment then?
[10:09] < MS-> (re mentor time stuff)
[10:10] < Davbo> Yep!
[10:11] < Chong-> Davbo: OpenGL apply the last transformation operation first, which is equal to transform around their local axis rather than the global one.
[10:15] < MS-> Davbo: cool :)
[10:15] < MS-> Chong-: I absolutely guarantee you that you can sum things
[10:16] < MS-> And do it correctly
[10:16] < MS-> rather than store every single rotation separately
[10:17] < Chong-> MS-: I can see if rotating around the same axis continuously, the operation can be summed.
[10:18] < MS-> Chong-: If you stop and play for a moment by picking up an object
[10:19] < MS-> you'll see that I'm right here
[10:20] < Chong-> MS-: I'll think about it.
[10:21] < MS-> better to play with an object
[10:21] < MS-> and rotate it by 45 degrees about the global x/y axis
[10:21] < MS-> first completely independently
[10:21] < MS-> then randomly
[10:21] < MS-> with a real object
[10:21] < MS-> you'll see
[10:23] < Chong-> MS-: do you mean rotation order doesn't matter if rotating around global axis?
[10:23] < MS-> correct
[10:24] < Chong-> I think it depends the object's position.
[10:24] < Chong-> For example, suppose a point is in (1,0,0). [rotate around x 90 degree frist and then rotate around y 90 degree] leads to (0,0,-1); but [rotate around y 90 degree frist and then rotate around x 90 degree] leads to (0,1,0)
[10:26] < MS-> I'm assuming rotation around the origin
[10:26] < MS-> (rotation of an object around the origin)
[10:26] < MS-> You really have to pick up a physical object
[10:26] < MS-> and look at it
[10:26] < MS-> you will see what I mean
[10:27] < Chong-> MS-: I see what you mean. I agree that rotating order around the origin doesn't matter.
[10:28] *** MS- wonders
[10:28] < MS-> did you do 3D graphics formally?
[10:28] < MS-> Or just learn by playing/fiddling with examples (ie self taught)
[10:28] < MS-> The former assists dramatically
[10:28] < Chong-> MS-: self taught :-)
[10:28] < MS-> I ask because it looks like you're hitting "3D graphics 101 problems"
[10:29] < MS-> k
[10:29] < MS-> That's where your problems are coming from then
[10:29] < MS-> k
[10:29] *** MS- will have a think of a decent tutorial
[10:29] < Chong-> MS-: thanks :-)
[10:30] < MS-> (try to find one that is :) )
[10:30] < MS-> My third year project involved using open gl extensively you see
[10:30] < MS-> and there's no way it would've been doable I think without the formal background from the dept you're in
[10:30] *** aa_ hasn't played with 3d graphics since the last bbc's
[10:30] < MS-> you may want to consider asking the graphics people if they have any current notes they give to students :)
[10:31] *** MS- wishes he'd documented his scans better now
[10:32] < MS-> (I took photos, using my camera in macro mode, of all my uni notes before throwing the paper copies away)
[10:32] < aa_> ahahaha
[10:32] < aa_> funny, I got out of uni (twice!) without a single line of notes
[10:32] < MS-> heh
[10:32] < aa_> and I graduated both degrees
[10:33] < Chong-> MS-: I would have a try. but I have some 3D graph books in hand, say the red book, interactive computer graph
[10:33] < MS-> I tend to not like throwing things away :)
[10:33] < MS-> By interactive computer graph do you mean the foley, van dam, feiner & hughes one?
[10:34] < MS-> It's a good book, but I think you need something a little more specific about the rotations - specifically the relationship of current modelling transform relative to local and global transforms
[10:36] < Chong-> the author maybe Edward Angel. The full name is interactive computer graph, a top-down approach using openGL
[10:36] < MS-> Not come across that one
[10:37] *** Davbo finds he remembers things better after writing them down.
[10:37] < MS-> There's a wiki for that ..
[10:45] < MS-> :)
[10:45] < MS-> Oh you mean notes?
[10:45] < MS-> Yes, me too
[10:46] < Davbo> indeed :)
[10:46] *** MS- finishes documenting *one* of Pablo's examples
[10:46] < MS-> I've spent far too long on that
[10:46] < MS-> nearly 3 hours
[10:46] < MS-> Original example:
[10:46] < MS-> http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/PO/test_examples/example1.py?revision=4798&view=markup
[10:47] < MS-> First improvement after reformatting:
[10:47] < MS-> http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/PO/test_examples/example1.mps.py?revision=4824&view=markup
[10:47] < MS-> Second improvement - after actually documenting what's going on:
[10:47] < MS-> http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/PO/test_examples/example1.mps.py?revision=4826&view=markup
[10:47] < MS-> as far as I can though, there's some gaping holes I can't fill in
[10:49] < Davbo> looks like he didn't know about python docstrings
[10:56] < MS-> No-one checks in *thousands* of lines of code and doesn't find out about that
[10:56] < MS-> He also doesn't appear to know about the "enter" key
[10:56] *** MS- is not in a good mood with pablo
[11:00] *** Davbo has a headache
[11:00] < Davbo> back in a bit
[11:01] *** Davbo is now known as Davbo-afk
[11:33] < MS-> Lawouach* : can you let me know when would be good for a meeting between you, me and Matt?
[11:33] < MS-> I'd like to discuss certain emails that've been flying around recently with the pair of you
[11:38] < Lawouach_> 'lo
[11:38] < MS-> heya
[11:38] < Lawouach_> Any time this afternoon is good for me
[11:38] < MS-> cool
[11:39] < MS-> I don't know how long matt's going to be tied up for
[11:39] < MS-> (I know he's in meetings but not for how long. I know he'll be driven mad by them probably if they're too long though, so hopefully not too long)
[11:40] *** Davbo has joined #kamaelia
[11:41] < Lawouach_> :)
[11:42] < Davbo> Hi Lawouach_
[11:44] < Lawouach_> hello Davbo
[11:45] *** vmlemon_ has joined #kamaelia
[12:08] < Lawouach_> Interestingly, though Pablo's test question arrives late in his project, it might attract more relevant answers because others have had the chance to dig into Kamaelia and Axon for a few months now.
[12:10] < Davbo> Yeah, I just replied
[12:11] < MS-> indeed
[12:11] < MS-> Davbo: Much appreciated
[12:12] < Davbo> I'll reply again if i think of anything else but I've got a horrible headache today
[12:12] < orphans> being asked it straight makes me realise how little I do too :(
[12:13] < MS-> So say it
[12:13] < MS-> saying that is useful
[12:13] < MS-> explain what you DO do
[12:13] < MS-> We all tend to write small stubs to test things
[12:13] < MS-> I'm sure you do too
[12:13] < MS-> just to try out "how does this work
[12:13] < MS-> "
[12:13] < MS-> "how does that work"
[12:14] < MS-> "can I get this to work"
[12:14] < MS-> All that Test Driven Development is *really*
[12:14] < Lawouach_> I'm terrible at tests
[12:14] < MS-> is about capturing those stubs in a way
[12:14] < Lawouach_> Shame shame but it's hard habit to take
[12:14] < MS-> that makes it possible to check you've not broken anything
[12:14] < MS-> Lawouach_: I'd do more tests if we had a test suite that suited kamaelia more really
[12:15] < MS-> You can use unittest, but its a high overhead for kamaelia at present
[12:15] < Davbo> well imo I'm not at the point for robust testing. in terms of TDD i go through getting things to "work"
[12:15] < Davbo> you can always come back to test more robustly later once you've got things done
[12:16] < orphans> heh, I'd really like some way to make sure I'm not sending garbage into components in Jam - I keep doing that and wondering why it doesn't work :)
[12:16] < orphans> perhaps I should invest some time and do that :)
[12:17] < MS-> Davbo: Agreed - testing is useful in different ways at different stages
[12:17] < MS-> At the "exploring the problem space" stage it's less helpful than it could be
[12:21] < Lawouach_> what I think I would appreciate as well is a memory leak finder
[12:22] < Lawouach_> Currently if you send data to a box without ever receiving from it
[12:22] < Lawouach_> it adds up
[12:22] < Lawouach_> until the box is full
[12:22] < Lawouach_> That can create some memory leak considering the box limit is rather large.
[12:23] < orphans> done that before :)
[12:23] < Lawouach_> With headstock I have so many boxes that I know some are just left being filled up
[12:23] < MS-> That information could be introspected by the way
[12:24] < Lawouach_> I'm sure it can, I just haven't looked at it yet :)
[12:24] < MS-> So that would be worth slighting out as a requirement IMO
[12:24] < MS-> After all you can declare that it needs testing :)
[12:24] < MS-> (and it does in practice as well anyway)
[12:45] *** Lawouach_ learnt a new word today. Quandry.
[12:49] < MS-> heh
[12:49] < MS-> :)
[12:51] < Lawouach_> ;)
[12:54] *** orphans learnt a new bit of python today
[12:54] < orphans> sum([[1, 2, 3],[2, 3,4]]) = [1, 2, 3, 2, 3, 4]
[12:55] < orphans> crap
[12:55] < orphans> didn't learn
[12:55] < orphans> sum([[1, 2, 3],[2, 3,4]], []) = [1, 2, 3, 2, 3, 4]
[12:55] < orphans> :)
[12:55] < MS-> >>> [1, 2, 3]+[2, 3,4]
[12:55] < MS-> [1, 2, 3, 2, 3, 4]
[12:56] < orphans> knew you could do that, just never applied it to sum
[12:56] < orphans> tis pretty clever :)
[12:57] < MS-> beware, down that path leads straight to the carousel
[12:58] < orphans> just using it to flatten a list :)
[12:58] *** Lawouach_ is happy to notice that jlib works just as well on Windows as it does on Linux. PyQt is trully portable.
[12:59] < MS-> cool
[12:59] < MS-> :)
[12:59] *** MS- is now known as ms-lunch
[12:59] < Lawouach_> Yeah that's awesome to use an american colloquialism
[13:00] < Davbo> indeed, it would be a quandary if jlib didn't work on Windows as well as Linux ;-)
[13:03] < Lawouach_> :p
[13:03] < orphans> Lawouach_, what does jlib do?
[13:03] < Lawouach_> It makes the World go round.
[13:03] < Lawouach_> ;)
[13:03] < orphans> sounds awesome :)
[13:03] < Lawouach_> it is
[13:03] < Lawouach_> I can spin faster
[13:04] < Lawouach_> More seriously (I'm not kidding) it's a library of PyQt objects and widgets that put a GUI atop headstock to write XMPP applications
[13:04] < Lawouach_> http://www.defuze.org/oss/jlib/jlibscreen.png
[13:05] < Lawouach_> that's just a showcase of the first widgets I was working on yesterday
[13:05] < orphans> so what, are they custom widgets automagically linked to the XMPP stuff?
[13:05] < Lawouach_> The code running that application is as short as:
[13:05] < Lawouach_> http://trac.defuze.org/browser/oss/jlib/examples/basic/client.py
[13:05] < Lawouach_> yes
[13:06] < orphans> mhm, I get it :)
[13:12] *** ms-lunch is now known as ms-
[13:12] *** mhrd-mtgs is now known as mhrd
[13:24] < Chong-> ms-: just replace rotationList with oldrotMatrix and linkTransform in order to solve the problem of rotationList becoming very large after many rotation operations
[13:24] < Chong-> Please check if it's ok now when you get time. thanks.
[13:25] < ms-> much more responsive :)
[13:27] < Chong-> ms-: glad to hear it :-)
[13:27] < ms-> I'll have a proper play later
[13:27] < ms-> see if I can break anything else ;-)
[13:27] < ms-> Does look really good though
[13:28] < Chong-> ms-: thanks. I have to admit that you are so good at catching bugs :D
[13:30] < ms-> I break everyone's code
[13:30] < ms-> Does make mine somewhat better as well though since it cuts that way for me too :)
[13:31] < Chong-> ms-: yes. there are a lot for me to learn from you.
[13:34] < Davbo> Hah Chong, you sound like you're ms-'s Jedi Apprentice (are you?) ;-)
[13:34] < ms-> Sith
[13:34] < Chong-> Davbo: :p
[13:35] < Davbo> 'course. Sorry Lord ms- :p < /kills this joke now>
[13:36] < ms-> Please do :)
[13:36] < Davbo> before ms- starts trying to strangle people over IRC (although from what i've seen he's probably tried that before)
[13:36] < ms-> (kill the joke that is)
[13:36] < ms-> heheheh
[13:36] < Davbo> :-)
[13:45] *** vmlemon_ has joined #kamaelia
[13:45] < ms-> " In addition it bestows powers on governments to decide which programs can be "lawfully" used on the internet. "
[13:45] < ms-> That's astounding - http://news.bbc.co.uk/1/hi/technology/7492907.stm
[13:58] < orphans> woop, can draw notes :)
[14:00] < ms-> orphans: cool
[14:00] < Chong-> orphans: congrats :-)
[14:02] < Chong-> ms-: do you have anything to raise during our meeting?
[14:02] < ms-> I think we said it all earlier really
[14:03] *** Trun has joined #kamaelia
[14:03] < Chong-> cool
[14:06] < ms-> Trun: Afternoon Pablo. Glad to see you're getting some answers - hopefully you can mould the discussion to get the information you need :)
[14:07] < Trun> yep, thank you very much for the answers, I'm answering them
[14:09] < ms-> Regarding : http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/trunk/Sketches/PO/test_examples/example1.mps.py?revision=4826&view=markup
[14:09] < ms-> I would suggest that you treat the existing code that you've written as an *exploratory* thing. You should not treat it as the definitive thing. (In my opinion)
[14:09] < Trun> ok
[14:10] < ms-> But I would suggest picking something *real* to work with
[14:10] < ms-> After all, the point behind test driven development is simple -
[14:10] < ms-> to capture all the things that you would do manually to ensure the code works
[14:10] < ms-> and to automate them so you can find out if you've broken anything
[14:11] < ms-> Going through that example though (even though it took FAR FAR too long to do so) has given
[14:12] < ms-> me an insight as to where you're coming from, and despite your currently goals, it's still very much a unittest approach
[14:12] < ms-> rather than the sort of testing needed for kamaelia systems.
[14:13] < Trun> I thought that maybe the put/get interface would be quite similar to the Source/Expecter way you showed me with MultiPipeTest.py
[14:14] < Trun> what kind of interface you prefer? you mean nothing related with "a testcase" at all?
[14:14] < ms-> yeah, but that's just one aspect of things and I requested source/expecter stuff weeks ago
[14:14] < ms-> and that's the first comment
[14:14] < Trun> ok
[14:14] < ms-> anyway, I've spent long enough on back and forths today, there's something else that needs discussing
[14:14] < ms-> could you /join #kamaelia-mentors
[14:14] < ms-> ?
[14:15] < Trun> sure
[14:15] < ms-> (just Trun)
[14:15] < ms-> ta
[14:23] < vmlemon_> Hi
[14:27] *** bcarlyon|laptop has joined #kamaelia
[14:42] *** matthew-p has joined #kamaelia
[14:48] *** j_baker has joined #kamaelia
[14:59] < j_baker> Hey Lawouach, suppose I want to send a message with a data attribute (like in XEP-0231). I notice that there is a Data class in headstock.api. Is that what I would use if I wanted to do this?
[15:02] < Lawouach_> Nope
[15:02] < Lawouach_> headstock.api.data is for XEP-0004
[15:02] < Lawouach_> I haven't done anything with XEP-0231 yet
[15:02] < Lawouach_> didn't know about it but looks good :)
[15:07] < Lawouach_> lol
[15:07] < j_baker> Hmmm... Eventually I'm going to have to find a simple way to send binary data with headstock. But that's not quite necessary just yet.
[15:07] < Lawouach_> ms- speaks too much
[15:07] < j_baker> ms- is a spammer.
[15:07] < Lawouach_> j_baker: out of band exchange
[15:07] < j_baker> Can you do that with headstock?
[15:07] < Lawouach_> http://www.xmpp.org/extensions/xep-0066.html
[15:07] < vmlemon_> Hah
[15:08] < Lawouach_> Not yet sadly, it wouldn't be too hard to support it but I currently don't
[15:08] < Lawouach_> j_baker: Please read that extension to ensure it is what you need
[15:08] < vmlemon_> Hmm, can't you just Base64 encode the file and stuff it into a "regular" message?
[15:08] < vmlemon_> Although I've probably missed something important...
[15:10] < j_baker> Well, that would be helpful Lawouach. I could use that to exchange data with the gateway directly and bypass the server.
[15:11] < Lawouach_> I will have a look but can't promise anything quickly
[15:11] < Lawouach_> It'd be useful no matter what so I'm enclined doing it anyway :)
[15:12] < j_baker> What would be REALLY cool is if I could use jingle. But that seems like it would be a GSOC project unto itself. :)
[15:13] < Lawouach_> :)
[15:19] < Davbo> Hah, j_baker: http://www.reghardware.co.uk/2008/07/07/cw_payg_iphone_launch/ (i think it was you i mentioned it to)
[15:21] < j_baker> That kinda sucks.
[15:22] *** MS- has joined #kamaelia
[15:22] < Davbo> hardly surprising though
[15:53] < j_baker> I officially hate the Microsoft Outlook web interface.
[15:55] < MS-> ditto
[15:55] < MS-> guess what I have to use for work mail
[15:56] < Davbo> Eudora?
[15:56] < Davbo> (joke)
[15:56] *** Davbo has never understood why people love Eudora
[15:57] < j_baker> Eudora still exists?
[15:58] < mhrd> yep
[15:58] < j_baker> I haven't seen Eudora since netscape was popular.
[15:59] < Davbo> mhrd "yep" is a bit much, i don't think they've updated in years
[16:00] *** mhrd has a few (stress the relative quantifier there) colleagues who still use it
[16:00] < mhrd> most are migrating to thunderbird, or official BBC outlook based mail now though
[16:01] < MS-> I have to use Microsoft Outlook web interface if I'm working away from the office (in practical terms)
[16:01] < Davbo> I think most Eudora users like Thunderbird. I like GMail :-)
[16:01] < j_baker> Me too. And there's not an option to forward my school's email anywhere else anymore. :(
[16:01] < MS-> And if I don't use it the rest of the time, It's pain because otherwise mail gets stuck in silos
[16:01] < MS-> (kmails' imap support could be *alot* better)
[16:02] *** mhrd likes Opera M2
[16:02] < j_baker> Opera has a mail client? I'll have to try it out.
[16:03] < mhrd> its folders concept takes a bit getting used to but it quite powerful
[16:03] < Davbo> can't you get GMail to check your Schools email j_baker, that's what mine does
[16:03] < j_baker> I like Opera a lot. And I'd use it as my main browser if it would render stuff properly.
[16:03] < j_baker> How do you do that Davbo? I was looking for a way to do it, but couldn't find it.
[16:04] < Davbo> Settings -> Accounts -> Get mail from other accounts:
[16:05] < Davbo> it downloads with POP3
[16:05] *** mhrd is now known as mhrd-afk
[16:05] < Davbo> problem being this: Last checked: 55 minutes ago
[16:06] < Davbo> think it does it every hours
[16:06] < Davbo> s/hours/hour
[16:06] < Davbo> probably wouldn't be regular enough for some
[16:07] < j_baker> Meh. It's fine for what I want to do.
[16:08] < j_baker> If I need to receive a message sooner, I can tolerate online outlook.
[16:10] < j_baker> Bah. I may not be able to do this. Gmail won't let you use a username that contains backslashes (which my school email's POP3 username uses).
[16:11] < j_baker> Well, actually it worked with forward slashes.
[16:11] < Davbo> Why would you allow backslashes of all the characters ?
[16:11] < Davbo> probably escape char j_baker
[16:12] < j_baker> It's an exchange thing, Davbo.
[16:14] < j_baker> That sucks.
[16:14] < Davbo> trust the Americans to use .edu
[16:14] < Davbo> :P
[16:15] *** Davbo will one day trick the Bolivians into giving him dav.bo
[16:16] < j_baker> Try talking to the MoinMoin team. They somehow got the URL MoinMo.in and I know that Moin isn't an Indian project.
[16:18] < Davbo> What's this ? www.sheffield.edu :-(
[16:20] *** j_baker wonders when he'll be able to use twitter with IM again.
[16:23] < Lawouach> back
[16:23] < MS-> j_baker: Just hook up the TCP_Client code with the aim or IRC code if you're worried about it...
[16:24] < MS-> Looks trivial
[16:24] < j_baker> As far as the twitter IM?
[16:24] < Davbo> Has the Twitter bot died j_baker?
[16:25] < j_baker> I think they took it down temporarily.
[16:25] < MS-> Sorry HTTPClient
[16:25] < Davbo> Those guys need to sort out a way to get some cash, and get some proper servers.
[16:25] < MS-> You talk to the ircbot, it talks to twtter, twitter talks to bot, bot to you
[16:25] *** vmlemon_ has joined #kamaelia
[16:26] < j_baker> Interesting. I hadn't thought of that.
[16:27] < MS-> You have to remember it's all just lego really. If you can talk to it, you can write a component that can talk to it, meaning you can then choose how you want to talk to the thing
[16:27] < MS-> rather than on its terms
[16:27] < MS-> Does require the big "do I really care" box to be checked though :-)
[16:28] *** MS- suspects that he probably could've gotten an award at mashed for simply getting now-and-next changes forwarded to twitter
[16:28] < j_baker> That's one of the things I like about Kamaelia. I was surprised at how easy it was to connect an HTTP server to Lawouach's code.
[16:28] *** vmlemon__ has joined #kamaelia
[16:30] < j_baker> Oh Lawouach (before I forget): I left you a ticket on defuze. One thing I should ask you though: before I send anything out on my message handler, are there any characters that are my responsibility to escape?
[16:31] *** vmlemon__ is now known as vmlemon_
[16:31] < Lawouach> j_baker: off the top of my head I don't think so
[16:32] < j_baker> Alright. Just checking to make sure. The simplechat example doesn't seem to like the characters < >.
[16:32] < Lawouach> but seeing your ticket you migh do then :)
[16:32] < Lawouach> from xml.sax.saxutils import escape
[16:35] < j_baker> I'll do that.
[16:36] < Lawouach> make sure your content is unicode BTW
[16:37] < Lawouach> bridge expects unicode only
[16:38] < j_baker> Ok. Will do.
[16:45] < Lawouach> orphans: you're missing __init__.py in Axon/__init__.py in your library/trunk directory
[16:46] < orphans> f$^£ing things :D
[16:47] < orphans> cheers Lawouach, should be fixed now
[16:47] < j_baker> Heh... I do that all the time. :P
[16:47] < Lawouach> that ought to become an habit guys. I create a directory, I create a __init__.py
[16:47] < orphans> I do that then forget to commit them. *sigh*
[16:48] < MS-> I do it habitually as well
[16:48] < MS-> echo >__init__.py is sufficient after all
[16:48] < Lawouach> I use
[16:48] < Lawouach> touch __init__.py
[16:48] < Lawouach> :)
[16:48] < Lawouach> Hmm
[16:49] < orphans> touch man myself - I think it sounds funny :)
[16:49] < Lawouach> Graphline raises an error on
[16:49] < Lawouach> component = _Axon.Component.component
[16:49] < Lawouach> right
[16:49] < Lawouach> I wonder if your Axon subdirectory doesn't conflict orphans
[16:51] < MS-> I used to use touch, but there was a version control system that wouldn't handle empty files (I forget which) so I moved to 1 byte files
[16:51] < Lawouach> okay
[16:51] < Lawouach> fair enough
[16:54] < orphans> Lawouach, could be - I'm running everything through an elaborate system of symlinks
[16:54] < orphans> try running it from the directory below?
[16:54] < orphans> or above
[16:54] < orphans> (not a long-term solution I know)
[16:55] < Lawouach> I'm running the "jam" command exported system wide
[16:55] < Lawouach> hang on
[16:56] < Lawouach> meh
[16:57] < Lawouach> may I ask why you have created that Axon directory?
[16:57] < Lawouach> your setup.py is mixing my installation :)
[16:58] < orphans> to keep the SchedulingComponent in - the same as I have library/trunk/Kamaelia/TypeOfComponent/Component.py, but for Axon
[16:58] < Lawouach> wondering why, it worked this weekend
[16:58] < Lawouach> yeah but currently that creats two Axon package in my site-packages
[16:59] < orphans> what happens if you don't have the __init__.py there?
[16:59] < orphans> 'cause otherwise aren't you overwriting the system wide axon __init__.py?
[16:59] < Lawouach> I guess but in that case without the __init__.py the setup.py command issues a warning
[16:59] < Lawouach> alright let me start again and see
[17:00] < orphans> as a complete side note my installation is pretty borked at the moment, and I have to do all sorts of gubbins with py_modules to get the __init__.py to even try to install
[17:00] *** MS- wanders off for a bit, back later
[17:00] *** MS- has parted #kamaelia
[17:00] *** orphans also tries again with a nice clean site-packages
[17:00] < orphans> nothing like a bit of hand-cleaning
[17:02] < Lawouach> hmm
[17:03] < Lawouach> that isn't good to mix with people's installation :)
[17:04] < Lawouach> well I can't install your library any longer without mixing my installation
[17:04] < orphans> component = _Axon.Component.component
[17:04] < orphans> AttributeError: 'module' object has no attribute 'Component'
[17:04] < Lawouach> um :/
[17:04] < Lawouach> yeap
[17:04] < orphans> sorry abt this
[17:06] < Lawouach> no worries but I hope you'll find a way to fix this some time soon ;)
[17:06] < Lawouach> I don't understand because it was working this weekend
[17:06] < orphans> mm, it's very strange
[17:07] < orphans> I don't suppose it works from an sdist version?
[17:07] *** orphans test
[17:07] < orphans> s/test/tests
[17:07] < Lawouach> alright
[17:07] < Lawouach> let me try somethin'
[17:11] < orphans> sdist version doesn't work
[17:11] < Lawouach> nope
[17:12] < Lawouach> I have no idea what has changed but currently I can't deploy nor use your application
[17:12] < orphans> yeah, I've got it
[17:13] < orphans> I shouldn't have that __init__.py in the axon dir because it overwrites the installed copy
[17:13] < orphans> and Axons __init__.py does clever stuff like start the scheduler, the CAT etc
[17:13] < Lawouach> okay
[17:13] < orphans> so I can either copy that into my dir, or leave it without, whichever you think is best
[17:14] < Lawouach> indeed
[17:14] < Lawouach> okay that's back to normal
[17:15] < Lawouach> the __init__.py had screwed my system
[17:15] < Lawouach> back to normal
[17:15] < Lawouach> my bad
[17:15] < Lawouach> shall we proceed with our meeting while we're here?
[17:15] < orphans> np - I know something I didn't know about Axon :)
[17:15] < orphans> yeah, sure
[17:16] < Lawouach> :)
[17:16] < Lawouach> okay well
[17:17] < Lawouach> What have you achieved this week?
[17:17] < Lawouach> Your schedule marked you'd have PianoRoll in
[17:17] < Lawouach> I saw it was comitted
[17:17] < orphans> yeah, it's not quite where I wanted it by now, but a bit more of the infrastructure is in than I thought (due to working from StepSequencer), so I think I'm pretty much level there
[17:18] < orphans> at the moment all you can really do is add notes to the graph, and it puts them in the scheduler
[17:18] < orphans> but the next few bits should come a bit easier
[17:19] < orphans> although I have a bad feeling about the speed of this one :)
[17:19] < Lawouach> alright so let me respond to that :)
[17:20] < Lawouach> 1. I assume you'll expand the PianoRoll documentation as well. Currently I don't know how to use it nor why I would want to. What's the purpose? :)
[17:20] < Lawouach> 2. What might be the problem with the speed?
[17:20] < Lawouach> 3. How do I add note?
[17:20] < Lawouach> :p
[17:20] < Lawouach> Go! :D
[17:21] < orphans> 1) yeah, the piano roll docs is a one to one copy of step sequencer atm, that's next on my list of stuff to do after get it vaguely working
[17:21] < orphans> 2) too much looping, and looping is bad :)
[17:21] < orphans> 3) Run PianoRoll.py and click places :D
[17:22] < Lawouach> okay
[17:23] < orphans> oh, and 1) b) so you can play melodies along with your drums
[17:23] < Lawouach> ah
[17:23] < Lawouach> that's what I was wondering still
[17:23] < Lawouach> that's really cool
[17:24] < orphans> it's not particularly impressive at the moment, but shouldn't be too hard to add stuff in now I've got to this stage
[17:24] < orphans> except if you try and run it it won't work because I've forgotten to check some stuff in
[17:24] < orphans> gah
[17:26] < Lawouach> python PianoRoll.py
[17:26] < Lawouach> Traceback (most recent call last):
[17:26] < Lawouach> File "PianoRoll.py", line 15, in < module>
[17:26] < Lawouach> from Kamaelia.Apps.Jam.Support.Data.Notes import noteList
[17:26] < Lawouach> ImportError: No module named Support.Data.Notes
[17:26] < Lawouach> have you checked in the entire code?
[17:26] < Lawouach> :)
[17:26] < orphans> committing now
[17:26] < Lawouach> ah
[17:27] < orphans> I'm an idiot :)
[17:27] < Lawouach> you just said it
[17:27] < orphans> should be there now
[17:27] < Lawouach> okay
[17:28] < Lawouach> update your setup.py :)
[17:29] < Lawouach> You forgot to add the package
[17:29] < orphans> heh, sorry, my sketches directory is a mess - you've caught me at a bad time
[17:30] < Lawouach> :p
[17:31] < orphans> ok, how's that?
[17:32] < orphans> good job we started the meeting early the rate I'm going :)
[17:36] < Lawouach> I had never used the py_modules
[17:36] < Lawouach> usage
[17:37] < orphans> I don't really know what it is - I was having trouble getting __init__.pys them to install
[17:37] < Lawouach> you shouldn't have to do anything
[17:37] < orphans> yeah, I know
[17:37] < orphans> I read that somewhere on the internet and it worked, so I left it
[17:38] < orphans> I think maybe it's just that my Kamaelia install was in a bit of disarray - I'll test out whether I actually need them later on
[17:39] < Lawouach> okay
[17:39] < Lawouach> setup fixed
[17:39] < Lawouach> hang on
[17:39] < Lawouach> http://rafb.net/p/TAeDqk80.html
[17:40] < Lawouach> You have to provide *each* package and sub-package
[17:40] < Lawouach> whether or not they only consist only of __init__.py
[17:40] < Lawouach> now the setup works and PianRoll too :)
[17:40] < Lawouach> I'll let you update your code ;)
[17:40] < orphans> ahh, I didn't know that - thought it did the recursive bit for you
[17:41] < orphans> thanks Lawouach
[17:41] < Lawouach> np
[17:41] < Lawouach> I assume that when a note is added/removed you send a Osc message right?
[17:43] < orphans> yeah, although that isn't working yet
[17:43] < orphans> on the step sequencer you can see how it works though - it'll be exactly the same with piano roll
[17:44] < Lawouach> okay
[17:44] < Lawouach> looks cool
[17:45] < orphans> cool :)
[17:46] < Lawouach> so
[17:46] < Lawouach> does "the check which note was clicked based on rectangles" algorithm was good enough for now?
[17:47] < Lawouach> okay I'll rephrase
[17:47] < Lawouach> my question wasn't even english
[17:47] < Lawouach> meh
[17:47] < orphans> I've done it slightly differently actually, I work from the mouse position to get to the note, then check against the start and end positions
[17:48] < Lawouach> which start and end?
[17:48] < orphans> of all of the notes in a certain 'channel'
[17:48] < Lawouach> ah okay
[17:48] < Lawouach> good idea
[17:49] < Lawouach> what were you other challenges this week?
[17:49] < orphans> it's the "list of dict of dicts" solution
[17:49] < orphans> getting the sdist build system looking vaguely sensible, which I did with some considerable help from Michael
[17:50] < orphans> I officially hate regex :)
[17:51] < orphans> and although it means very little to you the jam => pure data thing works well and sounds nice if you can get sound out
[17:51] < Lawouach> :)
[17:51] < Lawouach> lol
[17:51] < Lawouach> I'll wait for next week
[17:51] < Lawouach> MIDI support
[17:51] < Lawouach> yeah!
[17:51] < orphans> :)
[17:51] < Lawouach> At least that's what your schedule says
[17:51] < Lawouach> How do you feel about it?
[17:52] < orphans> the schedule?
[17:52] < Lawouach> yes
[17:52] *** bcarlyon|laptop has joined #kamaelia
[17:53] < orphans> I think it's pretty much right - could do with a day maybe where the piano roll comes together nicely, then I should be good
[17:53] < Lawouach> Okay
[17:54] < Lawouach> I think I much prefer that you ensure PianoRoll and StepSequencer to work well with Osc and MIDI rather than worrying about the week after that and UI niceties
[17:54] < Lawouach> Just in case you feel short in time
[17:54] < orphans> yeah, sure
[17:55] < Lawouach> If you keep up with your documentation as you've done until now you should have more time towards the end regarding tests
[17:55] < Lawouach> I do expect quite good tests cases because you can test Osc messages without UI
[17:56] < Lawouach> so your application is fairly easily testable outside of a UI
[17:56] < orphans> yeah, definitely
[17:57] < Lawouach> That's why I hope Pablo will have a workable framework by then :)
[17:57] < orphans> having all the filters decently tested will be nice too - that's where I tend to either throw the wrong thing in or get the wrong thing out
[17:57] < Lawouach> So make sure you communicate your requirements with him
[17:57] < orphans> yeah, I will do
[17:57] *** Davbo has joined #kamaelia
[17:57] < Lawouach> cool
[17:58] < Lawouach> I will try to have Pd working well on my machine
[17:58] < Lawouach> I want sound! :)
[17:59] *** vmlemon_ has joined #kamaelia
[17:59] < orphans> even if it's not a nice fix you will have MIDI soon
[18:00] < Lawouach> :)
[18:00] < Lawouach> Right.
[18:00] < orphans> (although I have to warn you MIDI in python is possibly even less nice than PD and Chuck combined)
[18:00] < Lawouach> ouch
[18:00] < orphans> imo of course - it's doable, just a bit of a mess
[18:01] < Lawouach> okay
[18:01] < Lawouach> well then
[18:01] < Lawouach> There are a discussion to have here.
[18:01] < orphans> all it takes is copying a couple of precompiled binaries - it's not pretty but it works :)
[18:01] < Lawouach> Your project was more about musicians interacting over a network
[18:02] < orphans> yeah
[18:02] < Lawouach> Considering that MIDI output means quite the opposite
[18:02] < Lawouach> I wonder if there is a reason to actually have MIDI support.
[18:02] < orphans> ahh, no - the MIDI won't touch the network stuff
[18:02] < Lawouach> yeah that's what I meant by "opposite" :)
[18:02] < orphans> ah, yeah :)
[18:03] < Lawouach> Alright
[18:03] < Lawouach> It's your project but I'd like your opinion on that matter
[18:03] *** Davbo will be back tomorrow
[18:03] < Davbo> Cya all
[18:03] < Lawouach> bye mate
[18:03] < Lawouach> orphans: should we support MIDI?
[18:03] < orphans> well, personally I really don't like MIDI - I don't like working with it, and I don't like the tools to work with it
[18:04] < orphans> but it is a standard, and is very widespread
[18:04] < Lawouach> right
[18:04] < Lawouach> but it doesn't actually add any value to your project
[18:04] < Lawouach> does it?
[18:05] < orphans> in a way it does because it will be interoperable with more programs
[18:05] < Lawouach> how?
[18:06] < orphans> so whereas now you can only use apps with OSC support to make your sound, if you had MIDI support you could use anything with MIDI or OSC support
[18:06] < Lawouach> I see.
[18:07] < Lawouach> Okay well I'll let you make the decision, just let me know tomorrow please.
[18:07] < orphans> although there are things like occam (http://www.mat.ucsb.edu/~c.ramakr/illposed/occam.html)
[18:07] < orphans> which will convert for you
[18:07] < Lawouach> If you feel you could use that time for enhancing the existing application, starting on tests, etc
[18:07] < Lawouach> I would be okay with dropping MIDI support
[18:07] < Lawouach> If you feel it's better to keep it, I'll be okay too
[18:08] < orphans> ok, I'll have a bit of a look and a think and let you know tomorrow it that's ok
[18:08] < orphans> see what I will/won't be able to use with it
[18:09] < Lawouach> that's cool with me.
[18:09] *** vmlemon__ has joined #kamaelia
[18:10] < orphans> ok, cool
[18:10] < Lawouach> My point is that from what I've seen, your application is well undergone and MIDI support wouldn't actually add much value from a GSoC perspective. Whereas being able to start working on important OSS aspects like tests, packaging, ensuring it works everywhere, etc. is more approriate IMO.
[18:10] < Lawouach> I don't want to sound like I want you to drop MIDI
[18:11] < Lawouach> But just to make sure you know you may if you can explain why
[18:11] < orphans> yeah, OK
[18:11] < Lawouach> cool
[18:11] < Lawouach> right
[18:12] *** vmlemon__ is now known as vmlemon_
[18:12] < Lawouach> Before we part for this evening, have you thought about what GSoC has brought to you so far?
[18:13] < orphans> I think the biggest thing has been learning about setting up a project in a way, how good practice there serves you well further down the line
[18:13] < Lawouach> Cool.
[18:13] < orphans> I tended to be pretty slapdash about stuff like that, but having it all set up nicely has made a really big difference to how I work
[18:14] < Lawouach> :)
[18:14] < Lawouach> That's what we had discussed a few weeks ago that the project layout was self-describing
[18:15] < Lawouach> It helps other developers to enter your project's design already.
[18:15] < orphans> probably the other major thing has been being a bit more systematic with design decisions - laying out the options and working through the strengths and weaknesses before diving in and trying them out
[18:15] < orphans> yeah, I can see how much easier it's been for you being able (theoretically) to just check it out, run the setup and be away
[18:16] < Lawouach> :)
[18:16] < Lawouach> Right well
[18:17] < Lawouach> I'm happy to hear that you've learnt and improved skills that are not directly related to coding
[18:17] < Lawouach> I think that's what GSoC is mainly about.
[18:17] < orphans> sadly the decline of the little grey cells probably means that the code is getting worse on a day by day basis :)
[18:18] < Lawouach> stop drinking beer then ;)
[18:18] < orphans> :)
[18:18] < Lawouach> But really it's the opposite
[18:18] < Lawouach> Your mind won't be as fast as it once was but the remaining cells are connected sensibly
[18:18] < Lawouach> Meaning you compensate with experience ;)
[18:19] < orphans> yeah - I'm hoping to store the zen of Lawouach in what remaining grey matter there is
[18:19] < Lawouach> ah
[18:19] < Lawouach> thanks
[18:19] < Lawouach> well then go grab a beer :)
[18:20] < orphans> mm, I will
[18:20] < orphans> I never liked them grey cells anyway
[18:20] < Lawouach> ;)
[18:20] < Lawouach> don't drain them all tonight though
[18:20] < vmlemon_> You want brown or green ones, instead? ;)
[18:21] < orphans> Lawouach, I won't :)
[18:21] < orphans> vmlemon, orange
[18:21] < vmlemon_> Aah
[18:21] < Lawouach> :)
[18:21] < Lawouach> right
[18:21] < vmlemon_> With blue stripes and pink zig-zags? ;)
[18:21] < Lawouach> gonna grab some food guys
[18:21] < Lawouach> brb
[18:21] < orphans> yes, on that note of very sillyness I may well go and indulge in some food and drink
[18:22] < Lawouach> orphans: tomorrow let me know your decision and your new schedule if you change anything
[18:22] < Lawouach> ta
[18:30] *** vmlemon_ has joined #kamaelia
[18:52] *** Trun has joined #kamaelia
[20:12] *** MS- has joined #kamaelia
[20:24] *** MS- changed the topic to Don't forget you can ask questions on the mailing list as well | Project Wiki here: http://edit.kamaelia.org/RecentChanges u/p : wiki/wiki | Next weekly meeting 4pm 10th July 2008 | Don't ask to ask, just ask | channel is logged: http://yeoldeclue.com/logs/
[20:37] *** MS- reads log from earlier
[20:38] < MS-> j_baker: I'd agree with the suggestion of base64 encoding binary blobs initially - when you find you need to
[20:38] < MS-> though there are some more efficient encodings that get used on usenet which would be looking at later
[20:39] < j_baker> I don't know if I quite understand the concept of base64 encoding...
[20:46] < j_baker> Oh, I see what you're saying. I'm not too concerned about the format that the data gets stored in so much as how it gets sent. The problem with just putting the base64 in the message is what happens if the binary data contains a < or a >?
[20:48] < j_baker> Although actually, now that I've read a little more on the subject, it appears that that actually does account for that. :)
[21:12] *** vmlemon_ has joined #kamaelia
[21:40] < vmlemon> Hah, "Greco: It's funny and all, but someone REALLY needs to do a Windows Haters' Handbook."
[22:09] *** Trun has joined #kamaelia
[22:22] < MS-> j_baker: yes, I thought that looking at base64 encoding might answer a few q's
[22:22] < MS-> It's also used alot in email, specifically for sending binary blbs
[22:23] < MS-> but I've also seen it used to sidestep issues with unicode and encoding html emails
[22:23] < MS-> There's one bug tracker that sends all mails as base64 though, which is really annoying
[22:23] < MS-> (a pain for naive filtering on content)
[22:23] < j_baker> So can base64 be encoded as unicode?
[22:24] < j_baker> Lawouach said that's a requirement for headstock.
[22:24] < j_baker> (I understand that it's encoded as ASCII characters)
[22:24] < MS-> No, the other way round
[22:25] < MS-> you can encode unicode in base64
[22:25] < MS-> though base64 goes in ascii and hence will sit inside unicode fine
[22:25] < MS-> It's 7bit clean if my memory serves correctly
[22:25] < MS-> Part of the point of it :)
[22:26] < vmlemon> Won't Base64 encode any data?
[22:27] < MS-> vmlemon: yep
[22:27] < MS-> That's kinda what I was trying to say :)
[22:27] < vmlemon> Aah, OK
[22:27] < MS-> j_baker: it's pretty easy to work with too:
[22:28] < MS-> >>> import base64
[22:28] < MS-> >>> base64.encodestring(u"Hello")
[22:28] < MS-> 'SGVsbG8=\n'
[22:28] < MS-> >>> base64.decodestring("SGVsbG8=\n")
[22:28] < MS-> 'Hello'
[22:28] < vmlemon> Next stop: a Kamaelia Base64 Module ;)
[22:28] < MS-> I think we've done that at least once
[22:29] < j_baker> That's not difficult.
[22:29] < MS-> I think that's one a filter module got created
[22:29] < vmlemon> Aah
[22:29] < MS-> encoder is simply
[22:29] < MS-> PureTransformer(lambda x: base64.encodestring(x))
[22:29] < MS-> decoder is
[22:29] < MS-> PureTransformer(lambda x: base64.decodestring(x))
[22:30] < vmlemon> Simple enough
[22:30] < MS-> Used in two places:
[22:30] < MS-> Util/Tokenisation/Simple.py
[22:30] < MS-> Apps/Whiteboard/Tokenisation.py
[22:30] < MS-> :)
[22:31] < MS-> hmm, the code for those two looks suspiciously similar :)
[22:31] < MS-> Oh, one of them is a refinement/extension of the other IIRC
[22:31] < MS-> Matt extended it for the whiteboard
[22:32] < vmlemon> Wow, Google Translate is the most pointless use of AJAX I've ever seen
[22:32] < vmlemon> Considering that HTML form objects already existfor pop-up menus and buttons
[22:33] < vmlemon> It's broken in Konqueror, too
[22:34] < MS-> You've not seen the server side blink tag then I take it?
[22:34] < MS-> That's quite possibly the most pointless use of ajax I've seen :)
[22:35] < vmlemon> Haha
[22:35] < aa_> think of all that entropy
[22:35] < j_baker> I think the world would be a better place if the blink tag was never invented.
[22:35] < vmlemon> Server-side CSS?
[22:36] < vmlemon> < MARQUEE>?
[22:37] < vmlemon> "The War on Blink Tags" ;)
[22:39] < vmlemon> Seeing as it worked in Konqueror pre-AJAXification, they probably changed it to make people use other browsers ;)
[22:42] *** MS- calls it a night
[22:42] < MS-> night
[22:42] < MS-> :)
[22:42] *** MS- has parted #kamaelia
[22:43] < vmlemon> Meh, "We regret that we currently cannot accept replies to 447_REDACTED_5@orangemms.net."