[05:52] *** j_baker has joined #kamaelia
[06:59] *** vmlemon_ has joined #kamaelia
[07:38] *** mhrd has joined #kamaelia
[07:58] *** orphans has joined #kamaelia
[09:51] *** Uraeus has joined #kamaelia
[09:56] *** Davbo has joined #kamaelia
[10:36] < Davbo> Hah! http://edit.kamaelia.org/SpeakAndLearn cool
[10:41] *** vmlemon_ has joined #kamaelia
[11:08] *** orphans has joined #kamaelia
[11:08] *** mhrd has joined #kamaelia
[11:08] *** sadrul has joined #kamaelia
[11:08] *** Davbo-afk has joined #kamaelia
[11:08] *** mhrd has joined #kamaelia
[11:09] *** Uraeus has joined #kamaelia
[11:09] *** bcarlyon|ubuntu has joined #kamaelia
[11:09] *** vmlemon has joined #kamaelia
[11:22] *** Davbo-afk has joined #kamaelia
[11:30] *** Davbo has joined #kamaelia
[12:05] *** bcarlyon|laptop has joined #kamaelia
[12:06] *** Davbo has joined #kamaelia
[12:22] *** vmlemon__ has joined #kamaelia
[12:35] *** vmlemon__ is now known as vmlemon_
[12:57] *** bcarlyon|laptop has joined #kamaelia
[13:19] *** Chong- has joined #kamaelia
[13:33] < vmlemon_> Hi
[13:35] < Davbo> netsplits galore
[13:38] < vmlemon_> Hmm, http://scratch.mit.edu/ looks somewhat interesting, even if it is mostly intended for kids...
[13:39] < Davbo> ms will probably find that interesting
[13:40] < vmlemon_> And it's got a cat ;)
[13:41] < Davbo> :-D
[13:59] < Davbo> I bought the spore creature creator yesterday
[13:59] < Davbo> May have to make a Kamaelia cat mascot in there
[13:59] < vmlemon_> Cool
[13:59] < vmlemon_> Got the Spore game itself, too?
[14:00] < Davbo> They're pre-releasing the creature creator for £5 before the game comes out
[14:00] < Davbo> Spore comes out in couple of months
[14:00] < vmlemon_> Aah
[14:00] < Davbo> but you get £5 off if you've got the creature thingy
[14:00] < vmlemon_> Bargain
[14:01] *** vmlemon_ has just found a disk image file created on an Apple Rhapsody/NeXTSTEP system that won't mount under Linux's UFS module
[14:04] *** MS- has joined #kamaelia
[14:04] < MS-> http://edit.kamaelia.org/SpeakAndWrite
[14:04] < Davbo> That must be old vmlemon_
[14:05] < Davbo> Hey MS-, how is/was Mashed?
[14:06] < vmlemon_> Hi MS-
[14:07] < Chong-> Hi MS-,
[14:07] < Chong-> do you get time for our meeting?
[14:14] *** Davbo will give £1 to the first person which can write "Kamaelia" on that handwriting thing MS- made ;-)
[14:14] < Davbo> it's a K not an X!!
[14:16] < mhrd> works fine for me ;-)
[14:16] < Davbo> "Wow, cool. You got it right!"
[14:16] < Davbo> I'm not good at writing with my mouse admittedly
[14:17] < Davbo> and I just realised you don't have to hold down left mouse all the time
[14:17] < Davbo> :-)
[14:17] < mhrd> there is only a fixed set of stroke patterns it recognises. It has one pattern for a single stroke k, and at least one for a K made from an 'l' followed by a 'c' in the appropriate position
[14:18] < Davbo> that's clever!
[14:18] < MS-> Chong-: I'm not doing mentor time today
[14:18] < Davbo> yay! Kamaelia
[14:19] *** Davbo gives himself a £1
[14:19] < mhrd> MS-: hi :-) had fun?
[14:19] < MS-> I'm more exhausted than an Acturan megadonkey that's been awake for 6 years solid
[14:19] < mhrd> heh
[14:19] < MS-> No-one's getting anything coherent out of me today
[14:19] < Davbo> MS-: I'm disappointed
[14:19] < MS-> Davbo: I'm sure you'll cope
[14:19] < Davbo> no easter egg for writing Kamaelia
[14:19] < Davbo> :-(
[14:19] < MS-> heh
[14:19] < MS-> didn't think of that
[14:20] < MS-> I'll do that
[14:20] < MS-> :)
[14:20] < MS-> I finally got back home last night after 10pm
[14:20] < orphans> afternoon all :)
[14:20] *** vmlemon_ hands Davbo a Kinder Surprise ;)
[14:20] < orphans> MS-, easter egg == circuit bent mode :D
[14:20] < MS-> collapsed and woke up 14 hours later or more
[14:20] < MS-> orphans: Fantastic idea
[14:20] < MS-> :)
[14:20] < MS-> make it so
[14:20] < MS-> :)
[14:20] < mhrd> half our stuff is still in boxes ;-)
[14:20] < Davbo> fwiw I didn't expect you here for the mentoring
[14:20] < orphans> will do :)
[14:21] < MS-> Davbo: much appreciated :)
[14:21] < MS-> Between thursday and sunday I got a total of 8 hours sleep
[14:22] < MS-> (2 hours on friday night, 1.5 hours (at best) on saturday night)
[14:22] < mhrd> ouch
[14:22] < Chong-> MS-: np :-)
[14:22] < MS-> mhrd: Yeah, merging the process code was a real pain, so I went for a pragmatic approach in the end which works
[14:22] < MS-> I'll explain another time
[14:22] < MS-> but boils down to renaming the old likefile to something
[14:22] < MS-> like
[14:23] < MS-> Axon.experimental._dontuseme
[14:23] < MS-> Since it's sufficiently stable for the usecase that Davbo is using it for
[14:23] < MS-> Oh, I can listen to IRC now too
[14:23] < MS-> which is odd
[14:23] < MS-> but useful
[14:24] < Davbo> nothing too profane then
[14:24] < mhrd> r m dash r space star enter
[14:24] < mhrd> :-)
[14:25] < MS-> heh
[14:25] < MS-> It speaks it
[14:25] < MS-> doesn't execute it :)
[14:25] < Davbo> hah
[14:25] < mhrd> it was worth a try
[14:26] < Davbo> :-)
[14:26] < mhrd> :)
[14:26] < vmlemon_> How does it sound?
[14:26] < mhrd> by your command.
[14:27] < mhrd> can anyone remember the url for that excellent intro to python?
[14:27] < Davbo> I think it sounds a bit Manchurian ;-)
[14:28] *** mhrd finds it
[14:28] < MS-> vmlemon_: It uses espeak's default voice which sounds brummy to me
[14:28] < mhrd> ( http://openbookproject.net//thinkCSpy/ )
[14:28] < MS-> Ahh that one
[14:28] < MS-> I like that
[14:28] < MS-> wasn't sure which book you meant :)
[14:28] < Davbo> MS- when it says "cool" it goes a bit scouse actually
[14:29] < MS-> Makes a difference from being californian though
[14:29] < Davbo> Yeah
[14:30] < MS-> I might put up a virtual box with it pre-installed
[14:30] < MS-> Someone noted that it'd be a way of getting people started.
[14:31] < Davbo> Any good with a touch screen?
[14:32] < mhrd> its nicest with a tablet pc ... where the screen only recognises teh stylus, so you can rest your hand on it if you need to
[14:32] < mhrd> (or with a wacom graphics tablet type device)
[14:33] < MS-> mhrd: I did wonder what it'd be like on the tablet
[14:33] < MS-> My work tablet's stylus (somehow) snapped in two
[14:33] < MS-> when in transit between work and home
[14:34] < MS-> Have we got any replacements or any idea how to get one?
[14:34] *** vmlemon_ wonders if it'd work on one of the SMARTBoard things...
[14:34] < MS-> I know the keyboard has gone as well ... , that could be worked around.. :)
[14:35] < MS-> vmlemon_: It should work really nice on this: http://www.gp2x.co.uk/
[14:35] < mhrd> you can buy them via quickorder from insight - I've done that ... should have the product number somewhere
[14:35] < MS-> I'll have to get quickorder set up properly then
[14:35] < MS-> :)
[14:35] < mhrd> there's a bit of a learning curve :-/ :-)
[14:35] < MS-> There would be :)
[14:36] < MS-> You found delete and return though?
[14:36] < MS-> \ == delete
[14:36] < MS-> / == return
[14:36] < MS-> (both strokes moving downwards)
[14:38] < mhrd> I thought delete was right-to-left swipe ?
[14:38] < Davbo> MS-: Would be cool if we could have it so you can listen through the IRC logs / meeting minutes :-D
[14:38] < MS-> mhrd: if you think about it that's what \ is :)
[14:39] < mhrd> Davbo: go for it ;-)
[14:39] < Davbo> edit the bot to make them a bit more friendly
[14:39] < Davbo> etc
[14:40] < MS-> Davbo: The code isn't complicated - feel free to play :)
[14:40] < MS-> https://kamaelia.svn.sourceforge.net/svnroot/kamaelia/trunk/Sketches/MPS/IRCSpeakerBot.py
[14:40] < MS-> You'd rip out the bulk of the IRC code
[14:40] < MS-> This is the "complicated" bit:
[14:40] < MS-> Pipeline(
[14:40] < MS-> SubscribeTo("FROMCHANNEL"),
[14:40] < MS-> spokenIRCFilter(),
[14:40] < MS-> UnixProcess("while read word; do echo $word | espeak -w foo.wav --stdin ; aplay foo.wav ; done")
[14:40] < MS-> ).activate()
[14:41] < MS-> I'll get to test the speak n write soon :)
[14:41] < mhrd> where is speak'n'learn in svn btw?
[14:41] < mhrd> s/learn/write/
[14:41] < MS-> /home/zathras/kamaelia/branches/private_MPS_SpeakNLearn/Apps/SpeakNLearn
[14:41] < MS-> It's got packaging and everything
[14:42] < mhrd> ta
[14:42] < MS-> heh, it's all linked here btw: http://edit.kamaelia.org/SpeakAndWrite
[14:42] < MS-> :)
[14:42] < mhrd> relies on Kamaelia.Apps.Whiteboard.Canvas ?
[14:42] < MS-> Need to update the link to the sourcethough
[14:42] < MS-> Yep
[14:42] *** Davbo wonders why he's still playing Speak and Write...
[14:42] < mhrd> just checking that interdependency is known about :)
[14:43] < MS-> The original code used a relative import
[14:43] < MS-> to /Sketches/MH/Sketcher
[14:43] < mhrd> yeah, probably something nasty like that ;-)
[14:43] < MS-> :)
[14:43] < MS-> This is nicer :)
[14:43] < MS-> https://kamaelia.svn.sourceforge.net/svnroot/kamaelia/branches/private_MPS_SpeakNLearn/Apps/SpeakNLearn/App/SpeakNWrite.py
[14:43] < MS-> That's actually the reason for allowing the Kamaelia.Apps stuff btw
[14:44] < MS-> since it'll pick up which bits of apps are useful to reuse
[14:44] < MS-> allowing them to be scavenged into the main tree
[14:44] < MS-> and then deps to change
[14:44] < MS-> I do find myself wondering *just* how parallel that piece of software is
[14:45] *** MS- decides to find out
[14:45] < vmlemon_> MS-: Seen http://scratch.mit.edu/?
[14:45] < MS-> Yep. You wouldn't beleieve how many people asked that q this weekend :)
[14:45] < mhrd> its also requiring Kamaelia.Apps.SpeakNLern.Gestures.StrokeRecogniser ... which I'm trying to locate
[14:46] < MS-> If you install the package it'll just work ..
[14:46] < mhrd> k
[14:46] < Davbo> Might have to --force
[14:46] < mhrd> was just trying to be awkward :)
[14:46] < MS-> install Axon/Kamaelia from the branch
[14:46] < mhrd> aah
[14:46] < MS-> :)
[14:47] < MS-> Now just have to figure out speech on Windows, and then I'll make it cross platfomr
[14:47] < MS-> Then package up as a standalone app for Mac OS X, Windows and using j_baker's stuff for linux too.
[14:47] < vmlemon_> Don't they make eSpeak for Windows?
[14:47] < MS-> vmlemon_: no idea
[14:47] < MS-> I think pyTTS may be a better option there though
[14:48] < MS-> Since that's native to windows
[14:48] < vmlemon_> Turns out that it runs on Linux, Windows, Mac OS X and RISC OS of all things...
[14:49] < vmlemon_> Or at least so the Wikipedia page claim
[14:49] < vmlemon_> *claims
[14:49] < MS-> Cool
[14:49] < MS-> Isn't it smalltalk under the hood though?
[14:49] < vmlemon_> Not sure
[14:50] < MS-> I'd rather something that kids can pick up and use that is actually useful in the real world myself
[14:50] < mhrd> "sudo python setup.py install --force" on the branche's Axon and Kamaelia didn't seem to help
[14:50] < mhrd> strange - it looks like it should work
[14:50] < MS-> ?
[14:50] < MS-> Odd
[14:50] < Davbo> edited http://edit.kamaelia.org/SpeakAndWrite for mhrd
[14:51] < Davbo> :-)
[14:51] < mhrd> Davbo: ta :)
[14:51] < MS-> Kamaelia.Apps.SpeakNLern.Gestures.StrokeRecogniser
[14:51] < MS-> That looks write
[14:51] < MS-> wrong
[14:51] < MS-> Kamaelia.Apps.SpeakNLearn.Gestures.StrokeRecogniser
[14:51] < MS-> is what the code I'm looking at says
[14:51] < MS-> np, spelt more accurately
[14:51] < MS-> (you wrote the former)
[14:52] < MS-> Maybe you accidentally hit delete and deleted a letter ?
[14:52] < MS-> :)
[14:52] < MS-> https://kamaelia.svn.sourceforge.net/svnroot/kamaelia/branches/private_MPS_SpeakNLearn/Apps/SpeakNLearn/App/SpeakNWrite.py
[14:52] < MS-> agrees with me
[14:53] *** MS- types rm -rf /usr/local/lib/python2.5/site-packages/Axon rm -rf /usr/local/lib/python2.5/site-packages/Kamaelia
[14:53] < mhrd> yep, typo - my bad
[14:53] < mhrd> I can see them installed in teh site packages dir ...strange
[14:54] *** MS- removes his copy of Axon/Kamaelia from local copy of branch
[14:54] < mhrd> I mustbe doing something stupid
[14:54] *** MS- grabs fresh copies
[14:54] < MS-> sudo python setup.py install --force
[14:54] < MS-> (in Axon)
[14:54] < MS-> Same in Kamaelia
[14:55] < vmlemon_> Hmm, "The requested URL /svnroot/kamaelia/branches/private_MPS_SpeakNLearn/Apps/SpeakNLearn/App/SpeakNLearn.py was not found on this server."
[14:55] < Davbo> Hmm I had same problem then forced install of Kamaelia from the package (http://edit.kamaelia.org/release/Kamaelia%20Speak%20N%20Learn-1.0.0.tar.gz) and it worked np mhrd
[14:55] < orphans> mhrd: __init__.py?
[14:56] < MS-> Ahh, and I now get ./SpeakNWrite.py
[14:56] < mhrd> hmm, I'm being awkward and trying to do it from svn for my own satisfaction
[14:56] < MS-> File "./SpeakNWrite.py", line 10, in < module>
[14:56] < MS-> from Kamaelia.Apps.SpeakNLearn.Gestures.StrokeRecogniser import StrokeRecogniser
[14:56] < MS-> ImportError: No module named SpeakNLearn.Gestures.StrokeRecogniser
[14:56] < MS-> as well
[14:56] < MS-> heh
[14:56] < MS-> wierd
[14:56] < mhrd> __init__.py .. could be
[14:56] < mhrd> MS- : are __init__.py needed in each subdir?
[14:56] < MS-> You can tell that I developed this *just* from a packaged version
[14:56] < MS-> yes
[14:56] < orphans> I had to touch one iirc
[14:56] *** MS- checks
[14:57] < MS-> Ahh there's one missing
[14:57] < mhrd> very easily done
[14:57] < MS-> thanks :)
[14:57] < Davbo> Well spotted orphans
[14:58] *** mhrd hopes this little exercise was useful rather than annoying :) ... indeed, orphans: good call :)
[14:58] < vmlemon_> Hmm, the GP2X looks interesting
[14:58] < vmlemon_> No idea how long it'll last on 2 AA batteries
[14:58] < orphans> heh, I'm forever doing it - it's the first thing I look for now :)
[14:58] < MS-> 2-4 hours depending on how high capacity the rechargeables are
[14:59] *** Davbo wasn't even aware of that
[14:59] < MS-> Now it complains of other things
[14:59] < mhrd> kamaelia logo ?
[14:59] < MS-> what else did I miss
[14:59] < mhrd> pygame.error: Couldn't open /usr/local/share/kamaelia/kamaelia_logo_whitebg.png
[15:00] < orphans> mhrd: gotta run the setup file for that to get installed
[15:00] < MS-> that's put there by the setup.py for the installer :-)
[15:00] < mhrd> k
[15:00] < mhrd> I'll just frig that one then :)
[15:00] < MS-> Ahh, there's various stuff not checked in
[15:01] < MS-> Index: Kamaelia/Apps/SpeakNLearn/Gestures/Analyser.py
[15:01] < MS-> Index: Kamaelia/Apps/SpeakNLearn/Gestures/Pen.py
[15:01] < MS-> Index: Kamaelia/Apps/Whiteboard/Canvas.py
[15:01] < MS-> Index: Kamaelia/UI/Pygame/Text.py
[15:01] < MS-> all contain not checked in changes
[15:01] < MS-> Which would therefore be in the package
[15:01] < MS-> but not in svn
[15:01] *** mhrd suspects MS- is due *lots* of slack due to sleep deprivation and working too much :)
[15:01] < MS-> heh
[15:01] < MS-> I'm really surprised I didn't check those in
[15:03] < MS-> One set of changes checked in
[15:03] < MS-> (doing them file by file as you expect
[15:05] < MS-> Canvas changes checked in
[15:06] *** Davbo is looking at the BBC Click website
[15:06] < Davbo> the BBC needs more Tech programming
[15:06] *** vmlemon_ would agree...
[15:06] < Davbo> There isn't much here at all
[15:07] < Davbo> Something preferably not on BBC News 24 at 11:30 :-/
[15:07] < vmlemon_> Didn't they discontinue the BBC Click TV (and/or radio) series, ages ago?
[15:07] < MS-> Nope
[15:07] < MS-> Still turns up on iPlayer - its a BBC News 24 show
[15:08] < MS-> Kamaelia/Apps/SpeakNLearn/Gestures/Analyser.py
[15:08] < MS-> check in
[15:08] < vmlemon_> There was a technology channel on Sky ages ago which folded many moons ago, which seemed somewhat interesting
[15:08] < vmlemon_> Can't remember what it was called, though
[15:08] *** MS- retries svn with the dependencies checked in
[15:09] < Davbo> Ahh! I know what you mean vmlemon_
[15:09] < Davbo> What was it called...
[15:09] < vmlemon_> Seemed a shame that it closed
[15:10] < MS-> Works from svn now
[15:10] < MS-> mhrd: Thanks for checking that :)
[15:10] < mhrd> np ... it works, its rather cook - good job MS- :)
[15:10] < MS-> ta :)
[15:10] < mhrd> s/cook/good/
[15:11] < Davbo> vmlemon_ was it called ".TV"?
[15:11] < vmlemon_> I think so
[15:11] < vmlemon_> Unless it was "TechTV" or something like that
[15:11] < vmlemon_> Was circa late 90s
[15:11] < Davbo> Yeah
[15:12] < Davbo> I think TechTV was the US counterpart they shared programming perhaps
[15:12] < MS-> Ah,
[15:12] < MS-> more not checked in stuff
[15:12] < Davbo> Almost certain it was .TV
[15:13] < vmlemon_> I can't remember it well, though
[15:13] < MS-> I forgot to check in the entire packaging stuff
[15:13] < MS-> :-D
[15:13] < MS-> Adding DistBuild
[15:13] < MS-> Adding DistBuild/BuildRelease.sh
[15:13] < MS-> Adding DistBuild/CleanBuild.sh
[15:13] < MS-> Adding DistBuild/setup.py.src
[15:13] < MS-> Adding DistBuild/upload.sh
[15:13] < MS-> Doh!
[15:14] < mhrd> you can get the speech output to backlog a bit :-P
[15:14] < MS-> Yep :)
[15:15] < MS-> You can get it to keep talking after the program exits
[15:15] < MS-> which is pretty cool
[15:15] < MS-> :-D
[15:15] < mhrd> it is a bit mancunian isn't it :)
[15:15] < MS-> a feature*
[15:15] < MS-> I thought brum myself
[15:15] < mhrd> its quite fun
[15:15] < MS-> :-)
[15:15] < vmlemon_> Hah,
[15:15] < vmlemon_> [16:07] < Auralis_> < pessimist mod=on>Thats the start of dismantleing and abdonding tru64< /mode>
[15:15] < vmlemon_> [16:07] < Auralis_> and obviously the end of spelling too :)
[15:16] < MS-> Oh, I didn't check in the logos either...
[15:20] < Chong-> MS-: Just tried SpeakNLearn, it's very interesting. Just wondering why it only accepts one stroke
[15:21] < Chong-> The source link on the wiki is not correct, SpeakNLearn.py -> SpeakNWrite.py,
[15:21] < Chong-> do you mind me amending it on the wiki page?
[15:21] < Davbo> It accepts more than one stroke Chong-
[15:22] < Chong-> Davbo: I can only input one stroke.
[15:22] < Chong-> for example, if I want to input t,
[15:22] < mhrd> you can always flesh out its pattern rules to add more strokes, and 'grammar' rules to add more rules to convert multiple strokes to characters
[15:23] < Davbo> Funny looking at the naming, looks like MS- couldn't settle on a name for it
[15:24] < Davbo> Probably the sleep deprivation
[15:24] < Chong-> I see. :-) I have to input l first and then -, the other order won't work
[15:25] < Davbo> Yeah Chong-
[15:25] < mhrd> Chong- : you can treat it as an exercise to work out how to make it accept both ways :)
[15:26] < Chong-> mhrd: probably decided by 'grammar' rules?
[15:26] < mhrd> yes
[15:27] *** Chong- looking Grammar.py
[15:29] < Chong-> Davbo: I think ms- may intend to include several apps into SpeakNLearn package, one of them is SpeakNWrite.
[15:29] < Chong-> so, there are two different names.
[15:30] < Chong-> That's my personal guess, not official :D
[15:30] < MS-> I've just tested in on a 6 year old
[15:30] < MS-> he loves it :-D
[15:31] < orphans> MS-, forget the 6 year old, I spent at least half an hour playing
[15:31] < orphans> great fun :)
[15:34] < MS-> heh, cool
[15:34] < MS-> :-)
[15:35] < MS-> Incidentally, this does mean, once merged, that it can be used with any other kamaelia app as well...
[15:35] < MS-> (16:27:16) Chong-: The source link on the wiki is not correct, SpeakNLearn.py -> SpeakNWrite.py,
[15:35] < MS-> (16:27:29) Chong-: do you mind me amending it on the wiki page?
[15:35] < MS-> It's a wiki. It's there to be corrected :)
[15:36] < MS-> I'll do a screen cast at some point :)
[15:36] < Davbo> MS-: I've already got an idea
[15:36] < Chong-> MS-: cool :-)
[15:36] < MS-> Davbo: Excellent :)
[15:37] *** Davbo adds to wishlist
[15:37] < MS-> It's quite fussy about the letters, but personally I think that's quite a good thing - since it'd encourage better handwriting :)
[15:37] < MS-> Hm. Maybe I should find a way to use it for IRC ...
[15:37] < MS-> (improve my handwriting)
[15:38] < vmlemon_> Meh, my handwriting sucks, that said...
[15:39] *** MS- hooks it up to the visualiser ...
[15:39] < Davbo> I don't know many programmers with legible handwriting or an ability to draw for that matter
[15:39] *** MS- waits for the system to settle ...
[15:40] < MS-> That has *sooooo* crawled to a halt
[15:41] *** mhrd is now known as mhrd-afk
[15:42] < orphans> MS-, given your current state are you up for answering a quick question on the design of a component?
[15:44] < MS-> Yeah, why not
[15:44] < MS-> Take the answer with a pinch of salt
[15:44] < MS-> and you may not get a good answer
[15:45] < MS-> but :)
[15:45] < orphans> ok, I'll shoot :)
[15:45] < orphans> I'm trying to sort out making python's sched module an axon component
[15:46] < orphans> sched basically handles a queue which lets you sleep for a certain amount of time, then a callback is made for whenever you schedule
[15:46] < MS-> python's "sched" module ?
[15:46] < MS-> OK
[15:47] < orphans> but using a callback doesn't seem very kamaelia-ific to me, so I was thinking of having a message sent on an "event" inbox
[15:47] < orphans> http://docs.python.org/lib/module-sched.html
[15:47] < orphans> which seems better, but still a bit un-kamaelia-ific, because the component is creating the message and sending it over it's own inbox
[15:48] < orphans> so I'm not really sure how to go about it - is there any precedent for this sort of thing?
[15:48] < MS-> So in otherwords, it fires off a message when something happens?
[15:48] < MS-> I'd say that it maps directly to the idiom
[15:49] < orphans> yeah, but instead of firing off a message does self.inboxes["event"].put(message)
[15:49] < MS-> while not self.anyReady():
[15:49] < MS-> self.pause()
[15:49] < MS-> yield
[15:49] < MS-> if self.dataReady("even happens")
[15:50] < MS-> I think the answer would be: check in an example in SVN, post to the list "does this look right or does someone have a better idea"
[15:50] < orphans> yeah, that's how it'd work. From an end user it looks quite clean, but internally I'm not sure that self.inboxes["event"].put(message) seems right?
[15:50] < orphans> ok, sure. I'll do that
[15:50] < MS-> That does look a little odd, but it's a bit out of context
[15:50] < MS-> It's perhaps worth noting as well, that the answer may be "it doesn't look quite right, but I can't think of a better one right now"
[15:50] < orphans> mhm, I'll post up the whole thing with an example - it's nearly there
[15:50] < MS-> That's what happened with Graphline
[15:51] < MS-> I picked the name because I had to, rather than having a good name
[15:51] < MS-> And its stuck because no one at the time ventured a better one
[15:51] < MS-> :)
[15:51] < orphans> ok, cool. Thanks :) (fwiw I quite like the name Graphline)
[15:52] < j_baker> morning and/or afternoon everyone
[15:52] < Davbo> MS-: Quick question?
[15:52] < MS-> sure?
[15:52] < Davbo> Afternoon j_baker
[15:52] < MS-> j_baker: afternoon
[15:53] < MS-> I've probably been awake as long as you though :)
[15:53] < j_baker> nothing wrong with that
[15:53] < Davbo> The XYPad has buttons on there but I can't get them to show up when I'm calling XYPad via a ProcessGraphline
[15:53] < MS-> 37 nodes in the app. So 37 levels of concurrency
[15:53] < MS-> That's nice
[15:54] < Davbo> I think it's to do with Axon.Scheduler.scheduler.run.runThreads() but not sure :(
[15:54] < MS-> What about via a normal graphline?
[15:54] < Davbo> Good question.
[15:54] *** MS- guesses it may be due to nonstandard in/outboxes
[15:54] < MS-> due to the limitations of multiprocess stuff *at present*
[15:56] < j_baker> brb: restarting my computer
[15:56] < Davbo> I don't think so MS-
[15:56] < Davbo> I only use standard boxes for the stuff across the ProcessGraphline
[15:57] < Davbo> internal to XYPad i use a link with a non-standard but that shouldn't matter
[15:57] < MS-> Ahh, it might well matter
[15:57] < MS-> I have a thought about that
[15:57] < Davbo> it *feels* like the buttton components aren't being activated as though it's not propagating through the code or something
[15:57] < MS-> the old likefile code
[15:57] < MS-> which this uses (but renamed)
[15:57] < MS-> links to all the boxes
[15:57] < MS-> so it may be something like that
[15:58] < Davbo> right
[15:58] < Davbo> You'd expect them to show up though, right?
[15:58] < MS-> as a fudge, if you put the component inside a graphline by itself, or with a friend, that _may_ resolve it
[15:58] < MS-> I don't know - I've not looked at the code you're talking about
[15:59] < MS-> But it seems a reasonable possible source of the bug given the issues with process pipeline due to the way old-likefile works
[15:59] < Davbo> buttons show up and work in a regular Graphline MS-
[16:00] < Davbo> Sounds like you're right :-)
[16:00] < MS-> Cool
[16:00] < MS-> Try putting it inside a graphline
[16:00] < MS-> and that graphline inside the process graphline
[16:00] *** Davbo loves how he can seamlessly go from ProcessGraphline to Graphline
[16:00] < MS-> awful fudge, but may work
[16:00] < MS-> Davbo: :-D
[16:00] < MS-> That's exactly the idea :-D
[16:07] < Davbo> Hmm I think the better fudge would be forcing the buttons to use standard boxes
[16:08] < Davbo> Just use inbox on the xypad check event[0] == "CLICK" something like that
[16:09] < Davbo> If I can't get that working I'll wrap an extra Graphline (but i don't like the idea of that)
[16:10] *** j_baker_ has joined #kamaelia
[16:11] *** bcarlyon|laptop has parted #kamaelia
[16:22] *** j_baker has joined #kamaelia
[16:47] *** j_baker-macbook has joined #kamaelia
[16:48] < j_baker-macbook> So does anyone know of a good linux distro that's not debian based and fairly lightweight (like it can fit on one CD)?
[16:49] < j_baker-macbook> I'd prefer something that I can build from the ground up without too much trouble.
[16:49] < j_baker-macbook> I guess I'm asking for Debian but not Debian. :)
[16:54] < Davbo> Ubuntu?
[16:54] < Davbo> would be the obvious suggestion
[16:55] < Davbo> Did you try Mandriva btw j_baker-macbook?
[16:55] < j_baker-macbook> Ubuntu is debian based
[16:55] < j_baker-macbook> I've been meaning to, but haven't.
[16:55] < Davbo> oh sorry, misread you said "not"
[16:55] < Davbo> Heh
[16:55] < j_baker-macbook> I'm not looking for something for my desktop though.
[16:56] < j_baker-macbook> I want something that's different from the distro I have on my desktop for testing purposes.
[16:56] < j_baker-macbook> (like to help track down any platform-specific bugs)
[16:56] < j_baker-macbook> So I want complete control over it, but I don't want to spend a crapload of time setting it up.
[16:57] < Davbo> I wouldn't expect to find many platform specific bugs with another Linux distro
[16:58] < Davbo> Unless you're writing Java that is
[16:58] < j_baker-macbook> That's a good point. I may have to look into freebsd since what I'm working with is command line as of right now.
[16:58] < j_baker-macbook> Heh... "write once debug everywhere."
[16:59] < Davbo> I was going to suggest freebsd but "but I don't want to spend a crapload of time setting it up."
[16:59] < vmlemon_> SCO OpenServer? ;)
[16:59] *** vmlemon_ ducks
[16:59] < j_baker-macbook> lol
[17:00] < j_baker-macbook> Well, I don't necessarily need to set up gnome or kde right now, so freebsd wouldn't be too much of a pain.
[17:00] < vmlemon_> (It's free of cost!) ;)
[17:00] < Davbo> OpenSolaris ?
[17:01] < j_baker-macbook> From the reviews I've read, it's not quite stable yet.
[17:01] < Davbo> Really?
[17:01] < Davbo> Oh
[17:01] < Davbo> that's interesting
[17:02] < vmlemon_> Anyone familiar with wget?
[17:02] < Davbo> Our "Sun Representative" says otherwise :-) but I suppose he would
[17:02] < j_baker-macbook> Yeah, I would imagine the solaris kernel would be pretty stable. It's been around forever.
[17:02] < j_baker-macbook> I suppose it wasn't really ever made for the desktop until now though.
[17:03] < Davbo> That's exactly why i'd expect it to be stable j_baker-macbook
[17:03] < Davbo> :-)
[17:05] < j_baker-macbook> I'll give freebsd a whirl. In my experience, it's a pretty much hassle-free OS for CLI use. Not so much for GUI type stuff though.
[17:25] *** xmlhacker_ has joined #kamaelia
[17:46] *** vmlemon__ has joined #kamaelia
[17:48] *** vmlemon__ is now known as vmlemon_
[17:53] < j_baker-macbook> This is interesting: http://www.glassdoor.com
[17:54] < j_baker-macbook> Apparently, Steve Ballmer has a 53% approval rating amongst employees.
[17:55] < j_baker-macbook> Jerry Yang of yahoo is even worse with 43%
[17:58] *** xmlhacker__ has joined #kamaelia
[18:11] *** j_baker has joined #kamaelia
[18:21] *** j_baker has joined #kamaelia
[18:21] < vmlemon_> Hah,
[18:21] < vmlemon_> [19:05] < jgw> i mean they're succeeding at doing nothing
[18:21] < vmlemon_> [19:05] < jgw> doesnt that count?
[18:21] < j_baker> MS-: I have to go mail a package off. I should be on time for our session, but I may be a little late.
[18:23] < MS-> k
[18:24] < j_baker> Speaking of mailing stuff off, did you ever get my contributor agreement?
[18:30] < MS-> I have actually - yes - thank you - it came last week just as I was leaving
[18:30] < MS-> didn't get a chance to say anything about it
[18:30] < MS-> But thank you :)
[18:55] < j_baker> Ok, I'm here.
[18:57] < j_baker> Let me know whenever you're available for our session, MS-.
[19:06] *** Chong- has joined #kamaelia
[19:09] *** vmlemon__ has joined #kamaelia
[19:12] *** vmlemon__ has joined #kamaelia
[19:14] *** vmlemon__ is now known as vmlemon_
[19:15] < MS-> sorry, thought you'd be late :)
[19:15] < MS-> I'm here, but wasn't listening to the channel
[19:19] < j_baker> Sweet.
[19:20] < j_baker> I've gotten the major bugs that I've found out of the way.
[19:21] < j_baker> There's one somewhat strange bug that I'm getting though. For some reason, it seems to truncate some of the pages in linux.
[19:21] < j_baker> Is there any kind of limit on the amount of data that can be sent in one go on a CSA?
[19:27] *** MS- ponders
[19:27] < MS-> There shouldn't be
[19:27] < MS-> That should be fairly OK
[19:28] < MS-> I've slung audio & video over happily and not sure what size chunks were thrown at the CSA but they were probably too large to be sent in a single go
[19:28] < MS-> But the CSA expects that
[19:28] < MS-> and if it can't send it all - which is normal - it keeps the rest until its sent
[19:29] < MS-> In fact it doesn't actually take anything out of an inbox if it has "leftovers" from last time
[19:29] < MS-> Bugs in what BTW
[19:29] < MS-> ?
[19:29] < j_baker> The WsgiHandler
[19:30] < MS-> I see
[19:30] < MS-> cool
[19:30] < MS-> One possible thought though
[19:30] < MS-> Your truncation may be due to shutdown messages
[19:30] < j_baker> Hmmm... hadn't thought of that.
[19:31] < MS-> That's pretty plausible actually
[19:31] < MS-> thinking about it
[19:31] < j_baker> I suppose that would explain why it isn't happening in OS X.
[19:31] < MS-> OS X may get to send stuff into buffers earlier
[19:31] < MS-> as simple as that
[19:32] < j_baker> So if my handler sends a shutdown message, will it eventually get back to the CSA then?
[19:33] < MS-> (my mind is a little mushy BTW)
[19:33] < MS-> Yes, essentially if you send the right shutdown message, the CSA will get shutdown. It's possible that the shutdown is getting there before the data is sent
[19:33] < MS-> I'd add some sys.stderr.write("...\n") messages
[19:33] < MS-> in that case in key locations
[19:33] < MS-> in both the hander and in the CSA
[19:34] < MS-> The aim being to find out whether there is a timing issue
[19:35] < j_baker> Alright. Unless I catch any other bugs popping up with MoinMoin, I'll probably move on to something else once that's taken care of.
[19:36] < j_baker> I'll have to search for some mature code that uses frameworks. That seems to be a tad difficult in some cases.
[19:39] < j_baker> But other than that, I think it's coming along pretty well.
[19:40] < MS-> That sounds good.
[19:41] < MS-> When you say this:
[19:41] < MS-> "I'll have to search for some mature code that uses frameworks."
[19:41] < MS-> Do you mean "mature code" that uses {django, pylons}
[19:41] < MS-> ?
[19:42] < MS-> If so, I'd worry less about that, and just focus on their respective "hello world" demo apps. (which are often simple wiki or blog engines)
[19:42] < j_baker> Yeah. I was also looking into TurboGears as well.
[19:42] < MS-> ie proof of concept
[19:42] < MS-> Is TG WSGI compatible these days then?
[19:42] < j_baker> I thought it was.
[19:42] < MS-> Didn't know that :)
[19:42] < MS-> I know they were changing at some point, but they were in flux last time I looked
[19:43] < j_baker> I could be totally wrong. That was really just an assumption on my part. :)
[19:43] < MS-> :-)
[19:44] < MS-> I'll aim to see if I can put some time aside this week to play with your stuff
[19:44] < MS-> maybe wed/thurs
[19:44] < MS-> It'll be interesting to see if I can get cerenity running on it
[19:45] < vmlemon_> Meh, the Wind River evaluation license system is well and truly broken
[19:45] < MS-> >
[19:45] < MS-> ?
[19:45] < j_baker> Is cerenity a WSGI app?
[19:46] < MS-> CGI
[19:46] < j_baker> Well, it wouldn't be too difficult to port it.
[19:46] < MS-> That should be relatively easy for me to fiddle with
[19:46] < MS-> that's what I was thinking :)
[19:46] < MS-> I'm sure that at minimum someone will already have written the middleware
[19:47] < j_baker> The only difficult part I could think of would be that WSGI requires the server to provide a lot fewer environment variables than CGI does.
[19:47] < vmlemon_> (I ordered an evaluation CD from them ages ago, and I'm still fighting with the crappy temporary license acquisition system that keeps giving HTTP 502 errors)
[19:50] < MS-> j_baker: Isn't that a bit the wrong way round?
[19:50] < MS-> WSGI provides more env variables because it provides addition ones?
[19:51] < j_baker> Well, WSGI CAN provide more environment variables. But most of the CGI ones are optional.
[19:51] < MS-> "The environ dictionary is required to contain these CGI environment variables, as defined by the Common Gateway Interface specification"
[19:51] < j_baker> Unless CGI doesn't require them either.
[19:52] < MS-> It's more that latter point
[19:52] < MS-> Which you're probably picking up on
[19:52] < j_baker> Ah, I see.
[19:53] < j_baker> Well, I've learned a lot about CGI by futzing around with moin. It was really made to be a CGI app originally I believe.
[19:53] < j_baker> I believe someone's GSOC project was to refactor it around WSGI.
[19:55] < MS-> Moin is older than WSGI
[19:56] < MS-> Therefore it would have a number of foibles
[19:56] < MS-> And having someone willing to just spend the time refactoring it to CGI would be welcome
[19:56] < MS-> I suspect making cerenity wsgi happy will be somewhat simpler
[19:57] < MS-> Especially given I've written some tools already that should make that simpler
[19:57] < MS-> (not targetted at making cgi's simpler, but I think it'd have that side effect)
[19:59] < j_baker> Yeah. If I remember correctly, isn't cerenity basically a 404 handler?
[20:01] < MS-> Not really - it's actually just a plain CGI that looks at any path info passed in, but can also detect if it's being run as a 404 error handler, and if it is it munges the env variables to make it look like (to the rest of the CGI) that it isn't
[20:01] < MS-> meaning you can run it as an error handler
[20:01] < j_baker> I see. I seem to remember you saying something along those lines to me.
[20:02] < MS-> This means http://edit.kamaelia.org/RecentChanges
[20:02] < MS-> gets mapped to http://edit.kamaelia.org/cgi-bin/Wiki/wiki/RecentChanges
[20:02] < MS-> and specifically "/RecentChanges" is handed in as an argument
[20:05] < j_baker> Well, I think that's really all the questions I have. Although I'm sure I'll think of some later.
[20:06] < MS-> Cool.
[20:06] < MS-> I'm glad to hear/see that you're making good progress
[20:07] < MS-> I'm sure you're thinking about your intedmediary etc
[20:07] < MS-> Do you feel on track with things>
[20:07] < MS-> ?
[20:07] < j_baker> Well, I've pretty much decided that the "intermediary" is going to just be an HTTP gateway for XMPP.
[20:08] < MS-> OK.
[20:08] < j_baker> I'm a little behind what I had scheduled, but thus far, I don't see me falling majorly behind.
[20:08] < MS-> Sounds good. Time estimation is hard so that's good to hear
[20:09] < j_baker> Yeah. Let's just hope I don't run into any majorly huge issues. :)
[20:09] < MS-> Cool :)
[20:09] < MS-> Well, if you do, you do
[20:11] < j_baker> Yeah. I can't imagine anything that huge happening that I haven't already caught (but that's the way programming works in general)
[20:17] *** vmlemon_ has joined #kamaelia
[21:07] < vmlemon_> Hah, http://www.theregister.co.uk/2008/06/23/ford_focus_chip/
[21:10] < j_baker> MS-: Is there any way to tell what's actually being sent out on a socket?
[21:10] < j_baker> I tried putting self.pause(5) in WsgiHandler before sending the producerFinished signal and it still isn't working.
[21:11] < j_baker> And as far as I can tell, the CSA is receiving the correct data.
[21:12] < MS-> wireshark or tcpdump are a good option to tell for *certain* what's coming out
[21:13] < MS-> since those are outside the app
[21:20] < MS-> Chong-: Where do you get off for bitching at me asking you to be clear in your communications?
[21:20] < MS-> I was asking you to consider being CLEAR in your communications about WHAT you're doing because you're not being.
[21:20] < MS-> And yes, I do damn well expect you to think about solving your problems yourself
[21:21] < MS-> I totally stunned by this comment:
[21:21] < MS-> > If so, there is no meaning for me to ask questions again because I myself
[21:21] < MS-> > also know the answer "Play and see what works". Here, I don't mean to
[21:21] < MS-> > comment on your answer. I just want to say that it effectively make me tend
[21:21] < MS-> > to think about solving problems myself.
[21:21] < MS-> This is also bullshit:
[21:21] < MS-> > You suggest me to post questions to
[21:21] < MS-> > the list and hope that others can answer. But, the fact I find is other
[21:21] < MS-> > mentors are not familiar with TopologyViewer.
[21:21] < MS-> I didn't write the TV in the first place, mhrd-afk did.
[21:22] < MS-> So that's 2 out of 3
[21:22] < MS-> If you feel its acceptable to bitch at me for asking you to be clear, I see little point in replying.
[21:22] < MS-> I'm not going to merge your code if I don't know what it does
[21:23] < MS-> But then you're not there are you
[21:23] < MS-> I'm just stunned at the comment "I just want to say that it effectively make me tend to think about solving problems myself. " as if that's a BAD thing?!
[21:24] < MS-> Also, where you say:
[21:24] < MS-> > And then after my several times' asking for your suggestion, you said
[21:24] < MS-> You missed the fact that I'd answered your query for a suggestion several times - including 2 days beforehand
[21:24] < MS-> You just didn't like the answer
[21:25] < MS-> which was (in that context) "play with different rules and see what works nicely"
[21:25] < MS-> (sorry to others on the channel)
[21:26] < MS-> But right at this instant, I'm at the point where I have zero visibility into Chong-'s project
[21:26] < MS-> And I'm being told that it's my fault that he's not clear
[21:28] < MS-> I mean, I will try my best to understand broken english, but there's broken and there's incoherent
[21:35] < MS-> Sorry that comes across as harsh to anyone else. It's just rather upsetting to be telling someone "please, make it so that I can understand what you're doing" and to get that back.
[21:51] < MS-> Actually even where you claim you updated your page, I'm now doing the game of spot the difference which you seem to expect me to do
[21:51] < MS-> and I can't actually see the chanegs
[21:51] < MS-> I started off with this:
[21:52] < MS-> ~/tmp> curl -o then.html "http://edit.kamaelia.org/Developers/Projects/3DTopologyVisualiser?version=13"
[21:52] < MS-> ~/tmp> curl -o now.html "http://edit.kamaelia.org/Developers/Projects/3DTopologyVisualiser"
[21:52] < MS-> ~/tmp> lynx -dump then.html > then.txt
[21:52] < MS-> ~/tmp> lynx -dump now.html > now.txt
[21:52] < MS-> ~/tmp> diff then.txt now.txt
[21:53] < MS-> and all that did was remove this:
[21:53] < MS-> create my own
[21:53] < MS-> < branch (private_CL_Scratch) and experiment with packaging
[21:53] < MS-> < (distutils module)
[21:56] < MS-> the diff between 12 and 13 isn't helpful either
[21:56] < MS-> nor between any other pairs
[21:57] < MS-> I'm sorry, not even playing a game of "spot the difference" gives me any answer
[21:57] < MS-> I'm removing the cruft relating to the stuff that's clearly not relevant.
[22:02] < Chong-> MS-: sorry for just seeing your messages.
[22:03] < MS-> I've read your message in detail now. Before had I skimmed it and noted your comment about Bath
[22:03] < Chong-> I think you have misunderstood me. I want to communicate more effectively, I like to involve in the project, I want to improve both my coding and communication/ project skills.
[22:03] < MS-> I'd more or less completely forgotten about that which is why I replied as I did
[22:03] < MS-> However then later I re-read your email in detail and it just pissed me off
[22:04] < Chong-> To reply your previous mail, I just want to explain that I did have tried, including maintaining project page, asking you questions on IRC and ask you about my plan/ schedule during out meeting.
[22:04] < MS-> You're not maintaining it though
[22:04] < MS-> I've checked the diffs
[22:04] < MS-> It's not coherent and doesn't explain anything
[22:04] < MS-> your checkin messages don't make sense
[22:05] < MS-> You seem to think it BAD that I expect you to think for yourself???
[22:05] < Chong-> Please do point out the mistakes I had made.
[22:05] < MS-> You think it OK to repeatedly ask the same question, even when you get an answer you don't like?
[22:06] < MS-> Your comment here was also wrong:
[22:06] < MS-> " You suggest me to post questions to the list and hope that others can answer.. But, the fact I find is other mentors are not familiar with TopologyViewer."
[22:06] < MS-> Asking questions to the list enables *anyone* to answer - mentor or otherwise
[22:06] < MS-> It allows someone else later on to search the archives and find the answer
[22:07] < MS-> It allows Matt to be able to answer if I can't
[22:07] < MS-> And Matt wrote the topology visualiser and is a backup mentor
[22:07] < MS-> which makes your comment wrong
[22:07] < MS-> This comment is wrong:
[22:07] < MS-> "It may be not very clear for you, but I did have tried to communicate and explain and I think it's consistent/ coherent."
[22:08] < MS-> You may be trying, but I would not be telling you *week after week* that I can't follow what your doing because you aren't communicating clearly
[22:08] < MS-> If you were communicating clearly
[22:08] < MS-> Saying
[22:08] < MS-> "16/6 - Extend viewer to be able to update the figure dynamically; add link arrow and text; clean up codes and finish up the PyGame version extention; prepare for OpenGL version coding"
[22:08] < MS-> Is better explained by
[22:09] < MS-> "10/6-12/6:
[22:09] < MS-> Extend viewer to be able to update the figure dynamically; add link arrow and text; clean up codes and finish up the PyGame version extention
[22:09] < MS-> 13/6, 16/6 and some time of the weekends:
[22:09] < MS-> prepare for OpenGL version coding"
[22:09] < MS-> Is wrong as well.
[22:09] < Chong-> Did you remember I have asked about the producerFinished problem of TopologyViewer?
[22:09] < MS-> Inserting dates doesn't make it clearer
[22:09] < MS-> We discussed that, I suggested a fix
[22:09] < MS-> Did you try it?
[22:09] < MS-> At all?
[22:10] < MS-> your project page doesn't note it
[22:10] < MS-> Your project log doesn't either
[22:10] < MS-> It's not referenced here either
[22:10] < MS-> http://cia.vc/stats/author/toplch/.rss?ver=2&medium=xhtml&limit=100
[22:11] *** MS- looks in the file on trunk
[22:11] < MS-> Ah yes, that was fixed on trunk
[22:11] < MS-> as a direct result of your comments
[22:11] < MS-> In the documentation for it, it says:
[22:12] < MS-> Historical note for short term: this has changed as of May 2008. In the past,
[22:12] < MS-> this component would also shutdown when it recieved a producerFinished message.
[22:12] < MS-> This has transpired to be a mistake for a number of different systems, hence
[22:12] < MS-> the change to only shutting down when it recieves a shutdownMicroprocess
[22:12] < MS-> message.
[22:12] < Chong-> In the last meeting, you suggest I may have no time to finish OpenGL version, so I move it ahead,
[22:12] < MS-> You haven't answered my question
[22:12] < Chong-> Which also shows in my project page and checkin
[22:12] < MS-> What is this ? Ask MS- random questions to watch him dance?
[22:13] < Chong-> in the last meeting, I also ask for your suggestions.
[22:13] *** vmlemon__ has joined #kamaelia
[22:13] < MS-> Chong-: I'm not bloody well rehashing what fucking algorithm you use to try and make 2 images not overlap
[22:13] < MS-> I suggested you try something and see what works
[22:13] < MS-> you didn't like that
[22:13] < MS-> and asked over and over again
[22:13] < MS-> But that answer isn't going to change
[22:14] < MS-> You ask for suggestions as to what you should do
[22:14] < MS-> But your currebnt status isn't clear
[22:14] < MS-> So my suggestion would be
[22:14] < MS-> in the clearest of possible terms
[22:14] < MS-> MAKE
[22:14] < MS-> IT
[22:14] < MS-> CLEAR
[22:14] < MS-> WHAT
[22:14] < MS-> YOU
[22:14] < MS-> ARE
[22:14] < MS-> DOING
[22:14] < Chong-> MS-: in fact, I did have tried. But I have not found a good way, so I asked you again during our metting.
[22:14] < MS-> No, you have not tried
[22:14] < MS-> I'm sorry, but you haven't
[22:14] < MS-> WHO
[22:14] < MS-> WHAT
[22:14] < MS-> WHY
[22:15] < MS-> WHERE
[22:15] < MS-> WHEN
[22:15] < MS-> HOW
[22:15] < MS-> Basic things
[22:15] < MS-> Hey, what about "full sentences"
[22:16] < MS-> I don't actually care how you communicate as long as you are clear
[22:16] < Chong-> MS-: please calm down, I do not intend to make you angry and I know you're pretty busy recently for the June release.
[22:16] < Chong-> If I had, I would sincerely apolygize to you.
[22:16] < MS-> Chong-: let's be clear
[22:16] < MS-> I expect you to communicate what you are doing
[22:17] < MS-> In something resembling something that I can understand
[22:17] < MS-> I have repeatedly stated that there's lots of ways of doing things
[22:17] < MS-> But at minimum your checkin messages must be clear
[22:17] < MS-> And that they are not
[22:17] < Chong-> I will. please give me some suggestion about how to do it effectively
[22:18] < MS-> I'm aghast
[22:18] < MS-> No seriously
[22:18] < Chong-> Because I did have tried, but it's not effective as you expect
[22:18] < MS-> I'm asking you to communicate
[22:18] < MS-> It's common sense
[22:18] < MS-> How you communicate
[22:19] < MS-> Let's see, let me communicate to you what I did this weekend
[22:19] < Chong-> talking and mailing
[22:19] < MS-> Lets see if you can follow
[22:19] < MS-> I went to London for a Hackday called mashed.
[22:20] < Chong-> yes. I can follow it.
[22:20] < MS-> A hack day is a gathering of developers where they meet for 24 hours and produce hacks which are in some way cool, interesting or fun and then have 90 seconds to demo and explain them to each other.
[22:20] < MS-> It's all about creating something and communicating the results
[22:20] < MS-> I created 2 things
[22:20] < MS-> one was a bot that could connect to an IRC channel and speak what was being said. It used the voice synthesiser espeak to do this
[22:21] < MS-> The other was a "speak n write" tool. It challenges a child to write a word.
[22:21] < MS-> It speaks this challenge (as well as writes it) so they do not need to be able to read
[22:21] < MS-> They then write (with a stylus) the word.
[22:21] < MS-> It then tells them whether they got it right or wrong.
[22:21] < MS-> OK, let's examine that
[22:22] < MS-> Oh finally there's somethings missing
[22:22] < MS-> the code for the ircspeaker bot is in /sketches
[22:22] < MS-> whereas the other has its own page.
[22:22] < MS-> Now let's examine it
[22:23] < MS-> Do you understand WHAT I did?
[22:23] < MS-> Do you understand HOW I did it?
[22:23] < MS-> Do you understand WHY I did it?
[22:23] < MS-> Do you understand WHERE to find more information ?
[22:23] < Chong-> I think I get it. My communication lack enough details.
[22:23] < Chong-> Is it correct?
[22:23] < MS-> Fundamentally yes.
[22:23] < MS-> It misses ALL the core details really
[22:24] < MS-> fundamentally though
[22:24] < MS-> consider this
[22:24] < Chong-> Thinking about previous communication, I did have this problem
[22:25] < MS-> That's not all that I did this weekend
[22:25] < MS-> Let me give a different example which is closer
[22:25] < Chong-> Very sorry for it.
[22:25] < MS-> I gave a presentation at there as well, but I didn't use Compose. Could you give me a suggestion for improving Compose. ?
[22:26] < MS-> (please base your answer on that sentence alone. your response may be "I can't answer" :) )
[22:26] < Chong-> yes. Because I even don't know what's Compose
[22:27] < MS-> See ?
[22:27] < Chong-> yes. got it.
[22:27] < MS-> Fundamentally, the problem isn't "I even don't know what's Compose"
[22:27] < MS-> Your problem in answering my question is
[22:27] < MS-> "I don't have sufficient information about the thing you're asking me questions about"
[22:28] < Chong-> In my communication, I assume that you know what I am talking about very well. That's a big mistake.
[22:28] < MS-> It is. It's a real problem because I can't follow at present:
[22:28] < MS-> * Your current state
[22:28] < MS-> * Your changes from state to state
[22:28] < MS-> The first being "what's there, what it does, how and why"
[22:29] < MS-> the second being a factor of "what you've done" vs "what you want to do"
[22:29] < MS-> but fundamentally the *why* is missing
[22:29] < MS-> And actually that's what's also crucially missing from my description of hack day as well
[22:29] < Chong-> I see.
[22:30] < MS-> The *why* was I attending, *why* were others, *why* did I build an IRCSpeakerBot, *why* did I build a "speak N write"
[22:30] < MS-> there's a famous phrase actually relating to code
[22:31] < MS-> which I'll dig out the correct quote
[22:31] < MS-> Just sprung to mind
[22:31] < MS-> Found it
[22:32] < MS-> "Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious"
[22:32] < MS-> That's by Fred Brooks
[22:32] < MS-> What it's actually about is revealing intent - they *why*
[22:32] < MS-> If you explain the *why* of what you're doing, generally speaking the *how* is less important.
[22:33] < MS-> (though both are necessary)
[22:33] < MS-> (the quote does say "usually" :) )
[22:33] < Chong-> I see and both are related.
[22:33] < MS-> Yep
[22:34] < MS-> Also, more checkins == less detail required
[22:34] < MS-> (per checkin)
[22:34] < MS-> less checkins == more detail required
[22:34] < Chong-> Sorry for the trouble. When I talk to my supervisor, he doesn't ask me more details because he knows what I'm doing very well.
[22:35] < MS-> Well, that's possible because you discuss the why as well as the what
[22:35] < MS-> And its face to face
[22:35] < Chong-> yes. that's the difference.
[22:35] < MS-> I doubt your superviser is doing diffs on your code
[22:35] < MS-> for example
[22:35] < MS-> or doing diffs on status pages
[22:35] < MS-> I had around 12 lines of text (by counting now)
[22:36] < Chong-> no. he doesn't concern codes.
[22:36] < MS-> for my changes this afternoon to the SpeakNWrite
[22:36] < MS-> Which are here:
[22:36] < MS-> http://cia.vc/stats/author/ms_
[22:36] < MS-> You'll note the comments can be incredibly brief
[22:36] < MS-> But they're descriptive of the purpose behind what's been checked in
[22:37] < MS-> For example
[22:37] < MS-> /branches/private_MPS_SpeakNLearn/Kamaelia/Kamaelia/Apps/Whiteboard/Canvas.py:
[22:37] < MS-> Changed to allowed to be transparent background
[22:37] < MS-> That actually adds in an attribute "transparent", modified the display request, and a few other things
[22:37] < MS-> But the intent is the important bit
[22:37] < MS-> Similarly, this comment:
[22:37] < MS-> "Added in fudge to force to wait for the display to start up (nasty, needs better pygame display/service access)"
[22:38] < Chong-> yes, that's the main point especially for others.
[22:38] < MS-> Also make clear *why* "yield 1; yield 1; yield 1;" was added
[22:38] < MS-> And also *why* its bad
[22:38] < MS-> but what it's working around
[22:38] < MS-> It doesn't need to be long
[22:39] < MS-> It's alot easier to do if you do regular and often checkins as well
[22:39] < MS-> If you have less regular ones though the checkin messages grow
[22:39] < MS-> for example if you see
[22:39] < MS-> 09:51 yesterday
[22:39] < MS-> Commit by ms_ :: r4580 /branches/private_MPS_SpeakNLearn/Apps/SpeakNLearn/App/SpeakNLearn.py: (link)
[22:39] < MS-> that has an 11 line checkin
[22:39] < MS-> (checkin message)
[22:40] < MS-> But that's referring to this diff:
[22:40] < MS-> http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/branches/private_MPS_SpeakNLearn/Apps/SpeakNLearn/App/SpeakNLearn.py?r1=4580&r2=4579&pathrev=4580
[22:42] < Chong-> yes. I can see there are many new codes.
[22:42] < MS-> But the diff explains the *why* behind the code change
[22:42] < MS-> ("codes" is generally wrong in english BTW)
[22:43] < Chong-> codes -> code ?
[22:43] < MS-> Generally, yes
[22:43] < MS-> :)
[22:43] < Chong-> I see. Thank you :-)
[22:44] < MS-> English is such a wonderfully consistent[*] language.
[22:44] < MS-> [*] may not be true
[22:44] < MS-> :)
[22:44] < MS-> Code is like sheep
[22:44] < MS-> in some contexts
[22:44] < MS-> :)
[22:44] < vmlemon__> The only thing consistent about English is that it isn't ;)
[22:44] *** Chong- That's very good that I even can improve English from my mentor :-)
[22:45] < MS-> Chong-: If you're learning *english* from me, you'll need someone to help you *unlearn* it :-)
[22:45] < MS-> vmlemon__: indeed
[22:45] < Chong-> :-)
[22:46] < MS-> vmlemon__: Even that e i, i e & c rule is easy to disprove using egrep, wc and /usr/share/dict/words
[22:46] < vmlemon__> Hell, I'm a native English speaker, and certain things still trip me up to this day...
[22:47] < j_baker> I propose that we all speak in python from now on.
[22:47] < vmlemon__> Haha
[22:47] < MS-> oh I always spell recieve wrong
[22:47] < MS-> I bet that's wrong
[22:47] < j_baker> Sorry. self.propose(speak='python')
[22:47] < MS-> yep , it is
[22:48] < MS-> I'm guessing that's why the socket library uses recv as well
[22:48] < vmlemon__> Even harder when you've become used to having an automated spellchecking system, after years of actually being able to spell most words correctly...
[22:48] < vmlemon__> Probably caused more problems than it's solved...
[22:48] < Chong-> yes. English is hard :-)
[22:48] < MS-> (send/recv in kamaelia are meant to allude to send/recv in the socket lib btw)
[22:49] < MS-> Chong-: Anyway, what I'm saying is I'm sensitive to that, but I'll have a much better chance at following what you're doing if I understand *intent*
[22:49] < MS-> :)
[22:49] < MS-> (as well as "what" :) )
[22:49] < MS-> (and how)
[22:50] < MS-> (but *why* gets you *alot* further :) )
[22:50] < Chong-> I'll explain why, how and what clearly and with more detail :-)
[22:50] *** xmlhacker_ has joined #kamaelia
[22:51] *** MS- checks j_baker's issue
[22:51] < MS-> Chong-: Don't forget the *why* :)
[22:51] < Chong-> yes. especially *why* :)
[22:52] < vmlemon__> Argh, anyone else noticed that Google has started to mangle the URLs in search result links as of late?
[22:52] < MS-> vmlemon__: yeah, I hate that
[22:52] < Chong-> MS-: thanks again for helping me find the problem.
[22:52] < MS-> np
[22:53] < vmlemon__> It returns a load of random crap, which is annoying if you just need the URL (especially if you can't access it directly, without passing it through a 3rd party proxy server)
[22:53] < vmlemon__> Even more annoying that hovering over the link displays it as plain text
[22:54] < MS-> j_baker: Wierd - that code does ensure resend
[22:54] < MS-> I'm wondering what your code changes
[22:54] < j_baker> It changes it so that it will yield instead of breaking if the message was not sent.
[22:55] < Chong-> I gotta sleep. Night all.
[22:55] < j_baker> night
[22:55] < Chong-> MS- : Have a good rest. Sorry for the trouble. :-)
[22:55] < MS-> Chong-: night
[22:56] < Chong-> night, j_baker , MS-, vmlemon__ and others.
[22:56] *** vmlemon__ is now known as vmlemon_
[22:56] *** Chong- has parted #kamaelia
[22:56] < MS-> j_baker: really?
[22:56] < MS-> That's all the change?
[22:56] < j_baker> Yeah.
[22:56] *** MS- looks at http://kamaelia.svn.sourceforge.net/viewvc/kamaelia/branches/private_JMB_Wsgi/Kamaelia/Kamaelia/Internet/ConnectedSocketAdapter.py?r1=4433&r2=4598
[22:57] < MS-> Ah there is a slight difference
[22:57] < MS-> You also ensure that the send queue is *completely* flushed
[22:58] < MS-> before moving on
[22:58] < MS-> Due to this:
[22:58] < MS-> was:
[22:58] < MS-> self.flushSendQueue()
[22:58] < MS-> now:
[22:58] < MS-> for i in self.flushSendQueue(): yield i
[22:58] < MS-> That changes the logic
[22:59] < MS-> specifically meaning that it doesn't come back and look at self.handleControl()
[22:59] < MS-> until all data being sent has been sent
[22:59] < MS-> For a request/response style server this will be OK and not cause problems
[22:59] *** vmlemon_ hates having to fill out forms for trivial things like downloading sample code and software evaluations...
[22:59] < MS-> But what it does prove (to me) is that the problem is in handleControl :-D
[23:00] < MS-> The original code handles resending you see
[23:00] < MS-> because the resend buffer is "self.data_to_send" which is in fact just a "send" buffer
[23:00] < MS-> If it's empty, something is taken from an inbox
[23:01] < MS-> if it's not, it just tries to send whatevers in the buffer, throwing away what it can send
[23:01] < MS-> and keeping the rest for next time
[23:01] < j_baker> So perhaps it would be easier to just have it not shut down until there's no more data to send?
[23:02] < MS-> In essence you've introduced a level of serial behaviour into the component which matches the serial behaviour.
[23:02] < MS-> (behaviour of the user of the component rather)
[23:02] < MS-> Probably, yes
[23:02] < MS-> This is basically wrong:
[23:02] < MS-> if isinstance(data, producerFinished):
[23:02] < MS-> # print "Raising shutdown: ConnectedSocketAdapter recieved producerFinished Message", self,data
[23:02] < MS-> self.connectionRECVLive = False
[23:02] < MS-> self.connectionSENDLive = False
[23:02] < MS-> self.howDied = "producer finished"
[23:03] < MS-> Actually that's OK
[23:03] < MS-> It's this which is wrong:
[23:03] < MS-> while self.connectionRECVLive and self.connectionSENDLive: # Note, this means half close == close
[23:03] < MS-> It should be more
[23:04] < MS-> actually it needs a bit of thought about how to make it work nicely
[23:04] < MS-> perhaps this:
[23:04] < MS-> No.
[23:04] < MS->
[23:04] < j_baker> Why not just add the code to flush the data to send once the main while loop is over?
[23:05] < j_baker> (like I have it in my version)
[23:05] < MS-> I'm thinking about broken connections
[23:05] < MS-> the problem is "self.connectionRECVLive" isn't right
[23:05] < MS-> nor is self.connectionSENDLive
[23:05] < MS-> There are 4 things there
[23:06] < MS-> which divide into two things
[23:06] < MS-> A ) * closed for sending by us vs closed for receiving by the sender
[23:06] < MS-> B ) * closed for receiving by us vs closed for sending by the sender
[23:07] < MS-> In some of those scenarios resending the queue makes sense and in some it doesn't
[23:07] < j_baker> I see.
[23:08] < MS-> connectionSENDLive essentually relates to A
[23:08] < MS-> But if it's not live because we're not sending that's OK for us to flush
[23:08] < MS-> if it's not live because the client's done the appropriate shutdown, it's less OK for us to flush, because the flush may not terminate
[23:08] < MS-> (loop)
[23:09] < MS-> The reason it works for you is because you're the one shutting down, not the client
[23:09] < MS-> half closed sockets are a pain
[23:09] < j_baker> I see what you're saying. Hmmm... that is a bit tricky.
[23:10] < vmlemon_> Night
[23:10] < MS-> night
[23:10] < MS-> Basically we're going to be getting info from somewhere
[23:10] < MS-> and that's not stored to allow the correct decision to happen
[23:10] < MS-> I'll suggest this - for the moment you use that change - since it will work correctly for you
[23:11] < MS-> and I post this discussion to the list as a reply to your query?
[23:11] < MS-> Is that OK?
[23:11] < j_baker> So then, could you add something like: while connectionRECVLive: self.flushSendQueue()
[23:11] < MS-> (just so we have a copy in one place)
[23:11] < j_baker> to the end
[23:11] < MS-> Yep, correct
[23:11] < MS-> we could (maybe)
[23:11] < j_baker> Yeah, that's fine. You can post it to the list.
[23:11] < MS-> but connectionRECVLive (as it stands) relates to B
[23:11] < MS-> :)
[23:11] < MS-> But the principle is right
[23:12] < MS-> (can we add a flag and decide there based on the flag)
[23:12] < MS-> fundamentally
[23:12] < MS-> if isinstance(data, producerFinished):
[23:12] < MS-> # print "Raising shutdown: ConnectedSocketAdapter recieved producerFinished Message", self,data
[23:12] < MS-> self.connectionRECVLive = False
[23:12] < MS-> self.connectionSENDLive = False
[23:12] < MS-> self.howDied = "producer finished"
[23:12] < MS-> is kinda wrong
[23:12] < j_baker> Wait. It would be while connectionSENDLive: self.flushSendQueue(); yield 1
[23:12] < MS-> also explains some disconnects I see in Kamaelia grey
[23:13] < MS-> That only works if the client is the one who hasn't cause connectionSENDLive to become false :-)
[23:13] < j_baker> You're right.
[23:13] < MS-> Or you see what I mean
[23:13] < MS-> Nice catch though :)
[23:13] < MS-> That sort of bug is a real pain to find :)
[23:14] < j_baker> I suppose the simplest solution would be just to add a third variable to check (like isProducerFinished), but that would complicate things a tad.
[23:15] < j_baker> (so I suppose it wouldn't be the simplest solution)
[23:15] < MS-> You can just split then in two
[23:15] < MS-> outgoing = false, true
[23:15] < MS-> incoming = false, true
[23:16] < MS-> then
[23:16] < MS-> while ( self.outgoing[1] and self.dataToSend() ) or ...
[23:17] < MS-> where < dataToSend> there is a method that checks the variable/buffer and the inbox :)
[23:17] < MS-> (badly chosen method name)
[23:17] < MS-> cool
[23:17] *** MS- posts this to the list
[23:19] < MS-> But at this point I really need sleep, so I'll call it a night and come back to this at some point tomorrow
[23:19] < MS-> once again though, nice catch :)
[23:19] *** MS- is now known as ms-afk
[23:19] < ms-afk> night all
[23:20] < j_baker> night