[00:34] *** vmlemon_ has joined #kamaelia
[02:34] *** vmlemon_ has joined #kamaelia
[02:58] *** vmlemon_ has joined #kamaelia
[03:18] *** vmlemon_ has joined #kamaelia
[05:31] *** vmlemon__ has joined #kamaelia
[06:04] *** vmlemon__ has joined #kamaelia
[06:54] *** Lawouach_ has joined #kamaelia
[06:54] < Lawouach_> morning all
[07:14] *** vmlemon__ has joined #kamaelia
[08:12] *** Uraeus has joined #kamaelia
[09:28] *** orphans has joined #kamaelia
[09:35] *** bcarlyon|laptop has joined #kamaelia
[10:30] *** vmlemon__ has joined #kamaelia
[11:01] *** MS- has joined #kamaelia
[11:01] < MS-> Afternoon
[11:01] *** MS- changed the topic to gsoc coding period has started :-) | Release Wiki here: http://edit.kamaelia.org/ReleaseJune2008 u/p : wiki/wiki | Next weekly meeting 4pm 29th May 2008 | Don't ask to ask, just ask (channel is logged: http://yeoldeclue.com/logs/ )
[11:02] *** MS- looks forward to reading checkins later today :)
[11:08] < orphans> MS-, hey, quick (potentially silly question)
[11:09] < MS-> 42
[11:09] < MS-> (quick, potentially silly answer)
[11:09] < orphans> damn, you got it first time!
[11:09] < MS-> :)
[11:09] < bcarlyon|laptop> Ha!
[11:09] < orphans> is there any reason why only threaded components have a timeout argument in self.pause()
[11:10] < orphans> or if you need that bit of functionality should you be using a threaded component :)
[11:10] < MS-> Ah yes, that - it's to do with pragmatics.
[11:10] < MS-> Suppose I want to have something repeat once an hour
[11:11] < MS-> I could write
[11:11] < MS-> time.sleep(3600)
[11:11] < MS-> Oh hold on, not quite that is it
[11:11] < MS-> I can't remember off the top of my head actually
[11:11] < MS-> It's something like that
[11:11] < MS-> it was added because there was a problem case
[11:12] < MS-> Ahh, I think it's a cheat
[11:12] < MS-> And it's related to that
[11:12] < MS-> Suppose I wanted to do
[11:12] < MS-> time.sleep(3600) BUT wanted to honour shutdown requests immediately
[11:13] < MS-> If I write time.sleep(3600), then the component will wait for an entire hour, then check in/outboxes
[11:13] < MS-> and then if it received a shutdown (eg 50 minutes before), then and only then shutdown
[11:13] < MS-> whereas if you do self.pause() with a timeout for an hour
[11:13] < MS-> it will have the same effect as time.sleep(3600)
[11:14] < MS-> BUT, wake up when sent a message to wake up
[11:14] < orphans> yeah - I like how it works - thought it would be useful in non-threaded components too though
[11:14] < MS-> For non-threaded components it'd be a different thing
[11:15] < orphans> so for example my X-Y pad at the moment has to use a CheapAndCheerfulClock to wake it up so it can redraw often enough
[11:15] < MS-> it would mean "reactivate me after X seconds in the absence something"
[11:15] < orphans> in that case I reckon it would be cleaner to just call self.pause(1.0/60)
[11:16] < MS-> That wouldn't actually give you what you want btw. It'd be close, but not "correct"
[11:16] < orphans> what's the "correct" way?
[11:16] < MS-> Well, but not "correct" it wouldn't give you a rate of 60 fps (or similar)
[11:17] < MS-> it wouldn't approximate to it either - I suspect it'd be closer to 55fps
[11:17] < MS-> chooseing 1.0/5 instead
[11:17] < MS-> You'd want to be called at
[11:17] < MS-> 0.2, 0.4, 0.6. 0.8, 1.0
[11:18] < MS-> Whereas what self.pause(1.0/5) would give you in all likelihood is more like
[11:18] < MS-> 0.24, 0.48, 0.72, 0.96, 1.20
[11:18] < orphans> yeah, it's more for non-time critical stuff (like redrawing)
[11:18] < MS-> Since it wouldn't give you time correction
[11:18] *** MS- nods
[11:19] < MS-> Adding real-time aspects into the scheduler - which is what this would do - would be a nice idea, but its very hard to get *right*
[11:19] < MS-> or even what people really want
[11:19] < orphans> heh - I look quickly at it and thought "no" :D
[11:19] < MS-> If you can describe a few usecases and what sort of API you'd like though, feel free
[11:20] < MS-> (ie to post to the list)
[11:20] < MS-> after all, you get to communicate with the scheduler everytime you yield
[11:20] < MS-> eg yield WaitComplete(...) does just that
[11:20] < orphans> touch wood I've managed to get close enough timing stuff working without needing it built into the scheduler, so it's not super critical
[11:20] < MS-> Infact, WaitComplete might be an interesting way of handling self.pause(1.0/60)
[11:21] < MS-> since you could wrap the WaitComplete into something
[11:21] < MS-> I'm not actually sure what that would look like right now, but it's an option
[11:21] < orphans> uh huh
[11:22] < MS-> Hmm.. I can also see you needing finer control over timing
[11:22] < MS-> give your project.
[11:22] < MS-> s/give/given/
[11:23] < MS-> I'd think about it and post a set of comments to the list :-)
[11:23] < MS-> I'm actually off out now though :)
[11:23] < bcarlyon|laptop> I hope your not going to the pub in the rain?
[11:23] < MS-> chester
[11:23] < MS-> :)
[11:23] < bcarlyon|laptop> I hear it is raining down south.
[11:23] < bcarlyon|laptop> leeds is nice and sunny!
[11:23] < MS-> I'm not down south
[11:23] < orphans> ok - I'll be interested to hear what you reckon. I've gotta test my timing code pretty hard soon, so I'll see how it looks as it is
[11:23] < MS-> :)
[11:24] < bcarlyon|laptop> Hmm lol
[11:24] < MS-> cool
[11:24] < MS-> ok, cya later :)
[11:24] *** MS- has parted #kamaelia
[11:24] *** orphans is off to get lunch then restart revision :)
[11:29] *** vmlemon__ has joined #kamaelia
[11:34] *** Davbo has joined #kamaelia
[12:45] < Lawouach_> damn
[12:46] < Lawouach_> PyQt is a great tool but some of the people on the PyQt mailing list are major pain in the ass
[12:46] < Lawouach_> don't know why
[12:48] < vmlemon__> Hi
[12:55] *** vmlemon_ has joined #kamaelia
[13:08] *** Lawouach_ has joined #kamaelia
[13:10] < Davbo> Lawouach_ you used ProcessGraphline for anything?
[13:11] < Davbo> there seems to be literally 0 examples of it used in code, i mean it's pretty much identical to be Graphline but i'd like to see some working code with it
[13:11] < Davbo> (mine wont work :-( )
[13:17] *** bcarlyon|laptop has joined #kamaelia
[13:27] < Lawouach_> I haven't used it no
[13:47] < Davbo> ahh well
[13:47] < Davbo> will grab MS when he's around
[13:48] *** vmlemon__ has joined #kamaelia
[14:07] < bcarlyon|laptop> http://www.hcs.harvard.edu/~freeculture/blog/2008/05/22/zuneral-this-saturday/ < - haha
[14:12] < vmlemon__> Hah
[14:13] < vmlemon__> o. "(Harvard College Free Culture would like to thank Rachel and Jason for their Zune and iPod, respectively. We are sorry for your loss.)"
[14:22] < bcarlyon|laptop> Indeedy
[14:22] < vmlemon__> Ouch, http://seattletimes.nwsource.com/html/localnews/2003652872_webhouse05m.html
[14:23] < vmlemon__> "The ad posted last weekend welcomed people to take for free anything they wanted from the home. It has since been pulled from the site, but not before the residence was stripped of light fixtures, the hot water heater and the kitchen sink."
[14:24] < bcarlyon|laptop> Nice
[14:25] < bcarlyon|laptop> At least they remembered the kitchen sink....
[14:25] < vmlemon__> Took the front door and a window, too
[14:25] < bcarlyon|laptop> That is quite funny.
[14:25] *** vmlemon__ wonders if anyone took bricks and parts of the floor from it
[14:26] < bcarlyon|laptop> If you use pear, you might find this amusing: http://gsoc.barrycarlyon.servegame.org/bugs/
[14:27] < vmlemon__> Yay, a database error
[14:27] < bcarlyon|laptop> But it looks the same as the real pear website :-)
[14:27] < bcarlyon|laptop> They hanvt sent me the database yet.
[14:27] < vmlemon__> It's a mirror?
[14:28] *** bcarlyon|laptop reads bottom line: Bandwidth and hardware provided by: This is an unofficial mirror!
[14:28] < vmlemon__> Aah
[14:28] < bcarlyon|laptop> Its a copy of the website for building on
[14:28] < vmlemon__> Aah, cool
[14:31] < bcarlyon|laptop> indeedy
[14:31] < bcarlyon|laptop> Have you seen the new facebook vmlemon?
[14:31] < vmlemon__> Nope
[14:31] *** vmlemon__ doesn't have an account on it
[14:31] < bcarlyon|laptop> O
[14:31] < vmlemon__> Any good?
[14:31] < bcarlyon|laptop> my university union is paying my to build them an application. :-)
[14:32] < bcarlyon|laptop> the new one is ok
[14:32] < bcarlyon|laptop> lot of controvesy between the application developers at the moment tho
[14:34] < bcarlyon|laptop> My current facebook status: Barry is officially a Google Employee.
[14:34] < bcarlyon|laptop> Do you use Twitter?
[14:34] < vmlemon__> I've had a look at it, but it doesn't exactly scream "useful" to me
[14:36] < bcarlyon|laptop> Its good as a microbloggin service and when the jabber bot is working, they had a big database crash the other day, and are still recovering from it.
[14:36] < bcarlyon|laptop> They have a nice API to play with.
[14:36] < vmlemon__> Sounds fun...
[14:38] < bcarlyon|laptop> Indeed
[14:48] < Lawouach_> bcarlyon|laptop: I don't find their API nice :)
[14:48] < Lawouach_> They have a useful one but it's rather ugly to me
[14:48] < bcarlyon|laptop> Ive not really used in that much.
[14:49] < bcarlyon|laptop> I only use it to updated two radio accounts via cron and curl
[14:50] < Davbo> Does Twitter run on RoR?
[14:50] < Lawouach_> Regarding their support of jabber, it's great for Jabber and XMPP but I don't quite understand the added value to them :)
[14:50] < Lawouach_> Davbo: does it matter ? :)
[14:50] < Davbo> Just out of interest
[14:50] < bcarlyon|laptop> Lawouach, means i can updated from gtalk....and communicate with random people.
[14:51] < Davbo> I'm not implying anything from it
[14:51] < Lawouach_> bcarlyon|laptop: hey I'm aware of that considering I've implemented part of XMPP :)
[14:51] < bcarlyon|laptop> lol
[14:51] < Lawouach_> That doesn't add any value to Facebook :)
[14:51] < Lawouach_> The problem lies there
[14:51] < bcarlyon|laptop> lol
[14:52] < Lawouach_> Neither Google with GTalk nor Facebook, nor even Twitter have a business model around their use of IM
[14:52] < Lawouach_> It's just... cool.
[14:52] < bcarlyon|laptop> agreed
[14:52] < Lawouach_> Davbo: Neither do I. :)
[14:53] < Davbo> I'm not sure RoR scales very well though
[14:54] < bcarlyon|laptop> Twitter just netted $15million didnt they?
[14:54] < Davbo> no idea
[14:54] < vmlemon__> Lawouach_: Just wondering, have you had a play with the GMail notification extensions?
[14:54] *** vmlemon__ can see Twitter being purchased soon-ish...
[14:54] < Lawouach_> vmlemon__: nope. Should I?
[14:54] < vmlemon__> Dunno
[14:54] < vmlemon__> I was merely curious
[14:54] < Lawouach_> Yeah but again buying Twitter is just securing millions of users.
[14:55] < Lawouach_> They still can't make MySpace or YouTube economically viable
[14:55] < Lawouach_> It's just buying a pool of user
[14:55] *** vmlemon__ has always thought of YouTube and it's ilk as "stop and go sites"
[14:55] < Davbo> that's all they care about in silicon valley these days, get the users and the business model will come
[14:55] < vmlemon__> (i.e. quickly visit them to watch a video and two, and then leave)
[14:56] < vmlemon__> Back in a sec
[14:56] < Lawouach_> But since they still don't know how to monetize that pool I wonder about such move. Well yeah I know the move, the first to buy them prevent competitors to buy them instead
[14:56] < Davbo> Exactly Lawouach_
[14:56] < Lawouach_> I mean, Twitter is empty of ads AFAIK.
[14:56] < Davbo> what price would you put on 1 Twitter user ?
[14:56] < Lawouach_> How do you make money then?
[14:56] < Lawouach_> Twitter has no business model
[14:56] < Davbo> Twitter isn't empty of ads though is it
[14:57] < Davbo> the page has no ads
[14:57] < Davbo> but the service itself
[14:57] < Lawouach_> what service?
[14:57] < Davbo> Twitter
[14:57] < Davbo> Full of people pushing their products
[14:57] < Lawouach_> Twitter is not Facebook
[14:57] < Lawouach_> I don't think you push products on twitter, do yo?
[14:58] < Davbo> You'd be surprised
[14:58] < Lawouach_> Hit me :)
[14:59] < Davbo> There are many people documenting it
[14:59] < Davbo> http://www.profy.com/2007/07/17/is-twitter-the-next-big-advertising-medium/
[14:59] < Davbo> http://darmano.typepad.com/logic_emotion/2007/02/could_advertisi.html
[14:59] *** vmlemon_ has joined #kamaelia
[14:59] < Lawouach_> Microsoft is able to push ads via Windows Live because, IMO, they have such a large pool of dedicated users who don't know better that they can afford to. I don't think Google or Facebook can say the same.
[15:00] < Davbo> second article i linked there “Out with friends, sipping on Bacardi and Coke.  Gotta go, Justin just pulled up in his hot new S-Class...”
[15:00] < Davbo> I think that says it all
[15:00] < Lawouach_> True
[15:00] < Davbo> As you can see, huge advertising potential
[15:00] < Davbo> but not from the site itself, from the users
[15:00] < Lawouach_> But I'm not sure that's any different from what you could read 2 years ago when Facebook hit the road
[15:01] < Davbo> Humm
[15:01] < vmlemon_> Hi agai
[15:01] < vmlemon_> *again
[15:01] < vmlemon_> even
[15:01] < vmlemon_> Anyone seen the new Windows Live Search gimmick that supposedly gives users a tiny rebate for using their ads?
[15:02] < vmlemon_> I can't see the Yahicrosoft! thing working out, either
[15:02] < Davbo> I see what you mean Lawouach_
[15:03] < Lawouach_> Davbo: I'm not syaing people believing Twitter will be an ad vector are wrong.
[15:03] < Davbo> Yeah
[15:03] < vmlemon_> It might be interesting to see what Flickr's fate will be
[15:03] < Lawouach_> I'm just wondering if their claim it'll change the World all over again are realistic :)
[15:03] < vmlemon_> (Seeing as they've been purchased once)(
[15:03] < Davbo> Oh of course it wont :-)
[15:03] < Lawouach_> You alway have people bragging like that
[15:03] < Davbo> we've seen that time and time again
[15:03] < Lawouach_> What is their ground?
[15:04] < Lawouach_> yeap
[15:04] < Lawouach_> MySpace is still not making much money AFAIK
[15:04] < Lawouach_> Yet it has a fantastic added value for bands.
[15:04] < Lawouach_> Go figure
[15:04] < vmlemon_> Good job that a gigantic cash sink purchased them, then
[15:04] < vmlemon_> (At least for MySpace itself, although I couldn't care less about what happens to it)
[15:05] < Davbo> Seems a user called "CocaCola" signing up to Twitter could make more money than the service itself
[15:06] < bcarlyon|laptop> How would you make money with that other than selling the account to cocacola?
[15:06] < Davbo> I mean CocaCola making an account and using it to advertise bcarlyon|laptop
[15:06] < bcarlyon|laptop> o
[15:06] < Davbo> :-)
[15:06] < vmlemon_> Don't some companies already have "fake blogs" which appear to be written by "fans" or "customers" of the company, but is really well-written/packaged marketing schpiel intended to trick people?
[15:07] < Lawouach_> Interestingly... that means you can steal the identity of a brand
[15:07] < Lawouach_> Like MySpace
[15:07] < bcarlyon|laptop> And some companies pay people to write good stuff on wikipedia as well.
[15:07] < Davbo> You could see a "GMail Style" advertising strategy working for something like Twitter
[15:07] < Lawouach_> http://twitter.com/cocacola < -- I doubt the guy got it for anything else than seeling it for a large price to Coco Cola
[15:07] < Davbo> Tweets accompanied with targeted ads depending on their contents
[15:08] < bcarlyon|laptop> lol
[15:08] < Lawouach_> Davbo: That's the point.
[15:08] < Lawouach_> Indeed :)
[15:08] < bcarlyon|laptop> never updated tho.
[15:08] < Lawouach_> I've been discussing about technologies to allow that for almost three years with some friends
[15:08] < Lawouach_> It's very very difficult problem that goes well beyond technology
[15:08] < Lawouach_> It's a social and human behavior topic.
[15:09] < Lawouach_> bcarlyon|laptop: the point is not to update it.
[15:09] < vmlemon_> Hmm, I can really see something like "Hi, I'm Honda"? Or "We're Coca-Cola, and we're partying non-stop, why don't you join us" working out well...
[15:09] < Lawouach_> It's just twitter squatting :)
[15:09] < vmlemon_> (Not)
[15:09] < vmlemon_> It seems too pretentious, to me
[15:09] < bcarlyon|laptop> Not to update it?
[15:09] < vmlemon_> An "Anti-Twitter"?
[15:09] < bcarlyon|laptop> Hmm.
[15:10] < Lawouach_> It's the URL that matters
[15:10] < vmlemon_> Twittertising?
[15:10] < Lawouach_> Not the content in that case :)
[15:10] < Lawouach_> vmlemon_: you may see agencies pretending they are expert in that field yes.
[15:11] < Lawouach_> http://adverlab.blogspot.com/search/label/neuroscience?max-results=500
[15:11] < Lawouach_> interesting set of resouyrces
[15:14] < Davbo> Anyway I'm going to see how this kernel update goes. Back in a bit
[15:14] < vmlemon_> The supposed fake/Microsoft-sponsored "pro-Zune" sites come to mind
[15:14] < vmlemon_> although whether or not that rumour is true, I don't know
[15:14] < Lawouach_> Never heard of it. Any link?
[15:15] < vmlemon_> Not handy, although I remember reading something like that
[15:15] < Davbo> lol wouldn't surprise me vmlemon_. And i have a Zune :-P
[15:15] < vmlemon_> Really?
[15:15] < vmlemon_> Is it any good?
[15:15] < Lawouach_> It's quite amazing how the World changes though. When I started using the Internet we would have never discussed about such subjects.
[15:15] *** vmlemon_ has never actually seen one "in the wild"...
[15:15] < Lawouach_> We did have a teacher years later who tried to tell us about that topic but we couldn't care less
[15:16] < Lawouach_> i'm quite impressed by your feedback guys :)
[15:16] < Davbo> it's just like an iPod really
[15:16] < bcarlyon|laptop> lol
[15:17] *** Davbo wouldn't have paid full price for it though :-)
[15:17] < Davbo> Mine fell off the back of a lorry vmlemon_ ;-)
[15:17] *** Lawouach_ has an iRiver and is happy with it
[15:18] < vmlemon_> Interesting choice of colours that they make them in
[15:18] < vmlemon_> Haha
[15:18] < vmlemon_> Zune lorries in Europe?
[15:18] < Davbo> *aherm* no comment :P
[15:18] *** vmlemon_ wouldn't have thought that would ever happen
[15:19] < vmlemon_> Kamaelia port to the BBC Micro, anyone? ;)
[15:19] < bcarlyon|laptop> ha
[15:19] < bcarlyon|laptop> Wouldn't that break some bbc properitry laws somewhere, lol.
[15:20] < vmlemon_> It'd be next to impossible to get even Python to run on it, though
[15:20] < Davbo> Heh we had a BBC Micro at school.
[15:20] < Davbo> They were Acorn anyway right?
[15:21] < vmlemon_> I think we had one of the later BBC/Acorn machines
[15:21] < vmlemon_> (It ran some version of RISC OS, if I remember correctly)
[15:21] < Davbo> Yeah
[15:21] < Davbo> the one we had was certainly Acorn
[15:21] < vmlemon_> At school, anyway
[15:21] < vmlemon_> Yes
[15:22] < Davbo> Hehe funny things
[15:22] *** vmlemon_ had a Macintosh Performa running Mac OS 8 (dual booted to Mac OS 7.5.x) at home, then
[15:22] < Davbo> lol :-)
[15:22] < Davbo> we had an Amiga at home, the pinnacle of computer games
[15:23] < vmlemon_> I think I managed to make it tri-boot Mac OS 8, 7.5.x, and Mac OS 9 at one time
[15:23] < vmlemon_> Which was surprising for such an underpowered machine
[15:23] < Davbo> Yeah
[15:24] < vmlemon_> I remember trying to boot LinuxPPC 2000, and mkLinux on it, to no avail
[15:24] < vmlemon_> Later tried them on a slot-loading iMac, also without success
[15:25] < Davbo> :-)
[15:25] < Davbo> Really pushed that poor thing to its limits vmlemon_
[15:25] < vmlemon_> I did manage to get MachTen working on it, although I couldn't do much with it
[15:26] *** Davbo finds it funny he can't sync his MP3 player until he boots to another OS
[15:26] < vmlemon_> (I didn't know many UNIX commands at the time, and it didn't have a toolchain and compiler)
[15:26] *** bcarlyon|laptop has joined #kamaelia
[15:26] *** vmlemon_ had an el-cheapo Chinese MP4 (AVI) and MP3 player/recorder thing that wouldn't work under Windows at all in USB Mass Storage Mode
[15:27] < vmlemon_> Ironically, it Just Worked under Linux
[15:27] < Davbo> Hehe
[15:27] < vmlemon_> So much for Windows supposedly having "more comprehensive hardware support than anything else)
[15:27] < vmlemon_> "
[15:27] < Davbo> Main thing i use my Zune for is podcasts anyway and it works just fine.
[15:28] < Davbo> it's really essential that they can resume from where you left off there
[15:28] < vmlemon_> That's nuZe to me ;)
[15:29] < Davbo> yeah it's alright
[15:30] < vmlemon_> I had an Acorn emulator on one machine here, although I don't know which one, or even if I still have a copy of it
[15:31] < Davbo> cool :-)
[15:31] < Davbo> gonna go and revise for a bit.
[15:31] < Davbo> back later chaps.
[15:31] < vmlemon_> OK
[15:31] *** Davbo is now known as Davbo-afk
[15:32] *** vmlemon_ goes to look for a PlayStation 2 emulator...
[15:34] < bcarlyon|laptop> i know where there might be one, the same place i got my game boy emulator
[15:35] < vmlemon_> Aha
[15:35] < vmlemon_> I found the PCSX2 source code, but I remember it being a real b*tch to compile last time
[15:36] < vmlemon_> (http://www.pcsx2.net/downloads.php)
[15:38] < bcarlyon|laptop> lol
[15:39] < vmlemon_> If I remember correctly, it was originally written either for Windows or Linux, and then "ported" either way
[15:40] *** vmlemon_ assumes it started on Windows, since the Linux/UNIX version lags behind it hugely, and they only managed to get the two in sync recently
[15:40] < vmlemon_> Now to get 7Zip and the other junk it needs installed
[15:44] < bcarlyon|laptop> Nice.
[15:45] < bcarlyon|laptop> Does that mean if you grab it and install it you can go online and play others and it loads from cd?
[15:45] < vmlemon_> Yay, Fedora don't have a package for 7Zip...
[15:46] < vmlemon_> Last time I tested it, it supported loading certain games from CD/DVD, getting to certain places before crashing (and having horrid graphical glitches), emulated a gamepad with the keyboard, supported file-backed memory cards, and could run the PlayStation 2 BIOS image
[15:46] < vmlemon_> and it was very, very slow
[15:48] < vmlemon_> Dunno how well it (doesn't) work(s), now
[15:48] < bcarlyon|laptop> lol
[15:49] < vmlemon_> Still, it's an amazing feat to actually get even a semi-functional PlayStation 2 emulator, given by how complex the hardware is they have to emulate
[15:49] < bcarlyon|laptop> indeed
[15:51] < vmlemon_> Probably even more so than the Amiga, and people thought that would be impossible
[15:52] < vmlemon_> (That UAE stood for "Unusable Amiga Emulator" at one time says a lot ;) )
[16:12] *** Davbo-afk is now known as Davbo
[16:13] < orphans> http://blogs.adobe.com/penguin.swf/linuxaudio.png
[16:13] *** orphans cries
[16:14] < vmlemon_> It's well known that audio is in a sorry state on Linux, right now :|
[16:15] < vmlemon_> (Although that's one of the problems of having a "free for all"-style environment when it comes to system, in my opinion...)
[16:18] < vmlemon_> It seems that certain groups are so focused on bolting shiny, wizzy stuff on, that they forget the stuff that is critical for most people...
[16:19] < vmlemon_> (e.g. consistently working audio, a unified clipboard system that doesn't lose state when an application crashes, and so on)
[16:20] < vmlemon_> *system-level components
[16:34] *** vmlemon__ has joined #kamaelia
[17:01] *** vmlemon__ is now known as vmlemon_
[17:02] < Lawouach> back
[17:02] *** bcarlyon|laptop has joined #kamaelia
[17:59] < orphans> Lawouach, ping?
[18:01] < Lawouach> pong
[18:01] < Lawouach> how are you?
[18:01] < Lawouach> still head down for your exams?
[18:02] < orphans> yeah, got 4 in 3 days coming up :)
[18:02] < Lawouach> I see
[18:02] < Lawouach> last ones?
[18:03] < orphans> maybe - I've got one more which I can sit depending on whether I need to/think I'll do alright on it
[18:03] < Lawouach> I see
[18:04] < Lawouach> well you'll let me know :)
[18:04] < orphans> it's a bit of a crazy system where you can do extra credits, but if the grade isn't good it drags your overall one down
[18:04] < orphans> will do :)
[18:04] < Lawouach> ouch
[18:04] < orphans> if the next 4 go well I probably won't bother
[18:04] < Lawouach> okay
[18:05] < Lawouach> well I wish you good luck obviously :)
[18:05] < orphans> cheers :)
[18:05] < Lawouach> We shall be fairly fast today again
[18:05] < orphans> k
[18:05] *** orphans gets Sonic Speed Boots on
[18:05] < Lawouach> Right, so last week I had asked you to lay out the application directory structure
[18:06] < Lawouach> I can see you did so
[18:06] < orphans> yup
[18:07] < Lawouach> I went though the README
[18:07] < Lawouach> Nice of you to give a quick summary of each of your choice
[18:08] < orphans> yeah - thought that would give a bit more clarity as to where everything lives
[18:08] < Lawouach> It does
[18:09] < Lawouach> Okay
[18:09] < Lawouach> I saw that Jam.py is empty for now
[18:09] < Lawouach> Could you sketch quickly what it will contain eventually
[18:09] < Lawouach> To be more precise
[18:10] < Lawouach> sine it'll be the module that starts the application
[18:10] < Lawouach> what will it contain towards that goal?
[18:10] < Lawouach> how will you run it?
[18:11] < orphans> yeah - at the moment it's basically contain the main graphlines/pipelines used in the app. I'll get it set up with fairly basic code to start with and then build on top of it
[18:12] < orphans> so currently it'd probably look something a bit like UITest.py
[18:12] < orphans> and as I add and test components I'll work them into Jam.py
[18:13] < orphans> s/at the moment it's basically contain/it will basically contain
[18:13] < Lawouach> I'm curious about something
[18:13] < orphans> uh huh
[18:13] < Lawouach> Do you use Opera?
[18:13] < orphans> nope, ff
[18:14] < Lawouach> Okay
[18:14] < Lawouach> Have you ever used it? Or have you used the latest KDE?
[18:14] < Lawouach> More to the point, have you ever used their widgets?
[18:14] < orphans> no, and no, and no :)
[18:14] < Lawouach> Okay
[18:15] < Lawouach> Nevertheless, have you ever thought about the concept of widget applications? Or rather embedded applications?
[18:15] < Lawouach> You know you have usually fat client applications
[18:15] < Lawouach> and thing client applications
[18:16] < Lawouach> widget application sit in the middle as they are emebedded in a larger program
[18:16] < Lawouach> Now
[18:16] < Lawouach> where that leads me is whether or not you had considered that your application might be embedded one day in a larger program
[18:17] < Lawouach> ?
[18:17] < orphans> I guess I thought that the seperate elements may be - not the whole application though
[18:17] < Lawouach> are you interested in such concept?
[18:17] < Lawouach> no trick question here BTW :)
[18:17] < orphans> I'm not really sure what you're getting at?
[18:18] < Lawouach> well
[18:18] < Lawouach> You have not considered that your application could be emebeded in another application
[18:18] < Lawouach> right?
[18:18] < orphans> yeah
[18:18] < Lawouach> You had considered parts if it to be
[18:18] < Lawouach> not the whole application
[18:18] < orphans> yeah - more like a toolkit I guess
[18:19] < orphans> I'm not sure I see the value of embedding the whole app rather than just reusing the parts
[18:19] < Lawouach> :)
[18:19] < Lawouach> That's where I wanted to get at
[18:19] < Lawouach> It's your application
[18:20] < Lawouach> I'm not trying to lead you one or the other. You have to consider short term as well as longer term decision you make
[18:20] < orphans> still a little confused
[18:20] < Lawouach> Okay let me be clearer then.
[18:22] < Lawouach> When I looked at Jam.py and the way you had setup your directory structure, I wondered how you were seeing your application being used.
[18:22] < Lawouach> The point I'm trying to make you think about is whether or not you build this application as a demo of some sort
[18:23] < Lawouach> or an application that is could be used as a service by other applications.
[18:23] < Lawouach> I'll take an example
[18:23] < Lawouach> Vst plugins
[18:23] < Lawouach> They can be plugins and/or standalone applications
[18:23] < Lawouach> Currently, if your application is considered as a standalone application.
[18:23] < Lawouach> I don't mind either way.
[18:23] < Lawouach> I'm asking you "is it on purpose?"
[18:24] < orphans> ahh, I see - yes, it's deliberate
[18:24] < Lawouach> :)
[18:24] < Lawouach> Good. Why?
[18:24] < orphans> because of the way OSC is designed really - you don't need one tool coupled to one music making tool
[18:25] < orphans> so having it seperate gives the flexibility to use the app with anything else which supports OSC
[18:25] < Lawouach> Okay
[18:26] < orphans> you could even have one part controlling one program, and another part controlling another program
[18:26] < orphans> and route it however you like it
[18:26] < orphans> I guess kinda like how jack routes audio OSC can route messages
[18:27] < Lawouach> jack is a server. Applications are built atop jack indeed.
[18:27] < Lawouach> What are you building?
[18:27] < orphans> ah, bad analogy :)
[18:27] < orphans> forget that
[18:27] < Lawouach> the server part or an application that sits atop?
[18:28] < Lawouach> anyway
[18:28] < Lawouach> don't worry too much
[18:28] < Lawouach> I'm glad you know why you chose to go that route.
[18:28] < Lawouach> That's one thing you will have to document however
[18:28] < orphans> ok, yeah
[18:29] < Lawouach> Because in many applications, specially libraries, it is hard to understand or see the rational behind the thinking of a developer
[18:29] < Lawouach> I've understood that while developing amplee
[18:29] < Lawouach> THings that seem trivial to you may lose your user base
[18:30] < Lawouach> When things are getting too complex to explain it may mean you're lost yourself :p
[18:30] < orphans> yeah, I guess a "why do you want this app doing this in this way" doc would be very useful
[18:30] < Lawouach> for instance yes
[18:30] < Lawouach> one side note here
[18:31] < Lawouach> Start using something like textile, markdown or restructedText for your doc.
[18:31] < Lawouach> That'd be easier to translate that to HTML later on :)
[18:32] < Lawouach> Also, starting from next week. You'll lead the meeting :)
[18:32] < orphans> oh, yeah. Somewhere in something I read it says what they use for Kamaelia, I'll dig it up
[18:32] < orphans> ooh, exciting!
[18:32] < Lawouach> Meaning you'll have to explain what, why and how :)
[18:33] < Lawouach> right
[18:33] < Lawouach> We're not finished BTW ;)
[18:33] < Lawouach> put the beer down!
[18:33] < orphans> :)
[18:33] < Lawouach> I had another question
[18:33] Reply: Hi, I'm a bot. I've been put here to answer faq's and log the channel. You can find the logs at http://yeoldeclue.com/logs/ Please don't ask 'any mentors here' since I'm logging for them. Yes, there is. If you just ask you question
[18:33] Reply: or post your idea, you may get a response - either from a mentor or fellow student or from someone reading the logs.
[18:33] Reply: Regarding applications we will be discussing applications (and maybe asking for improvements) until April 7th or 8th - remember no news may well be good news
[18:33] Reply: Some useful links/tips - use the template : http://kamaelia.sourceforge.net/SummerOfCode2006Template - base page: http://kamaelia.sourceforge.net/SummerOfCode
[18:33] Reply: Tips for a good application - q's to ask yourself: http://yeoldeclue.com/cgi-bin/blog/blog.cgi?rm=viewpost&nodeid=1206709783
[18:33] < Lawouach> damn you kamaeliabot :)
[18:33] < orphans> kamaeliabot: slap
[18:33] Reply: Ouch!
[18:33] < vmlemon_> kamaeliabot: poke
[18:33] Reply: Not the eye! Not the eye!
[18:33] < Lawouach> thanks vmlemon_
[18:34] < vmlemon_> No problem ;)
[18:34] < Lawouach> :)
[18:34] < Lawouach> orphans: Currently you have the Sketches directory allocated to you.
[18:34] < Lawouach> Let's say you want to release your application next week.
[18:34] < Lawouach> How would you proceed?
[18:34] < Lawouach> (Not asking for each svn command here just the general process you'd follow)
[18:35] < orphans> eesh, erm
[18:35] *** orphans flounders
[18:35] < orphans> make a setup.py file
[18:35] < orphans> sort everything out so it'd install nice
[18:36] < orphans> make a tarball/exe/whatever
[18:36] < Lawouach> alright.
[18:36] < orphans> and whack a tag on the svn version
[18:36] < Lawouach> okay
[18:36] < Lawouach> Good :)
[18:36] < orphans> (if svn does tagging - *sigh*)
[18:36] < Lawouach> it kindda does
[18:36] < Lawouach> okay
[18:37] < Lawouach> currently though your Sketches directory is not really well laid out for such task
[18:37] < Lawouach> I mean, where would you stuff the tag?
[18:37] < orphans> yeah, I see that
[18:37] < Lawouach> :)
[18:37] < Lawouach> okay
[18:37] < Lawouach> so one tiny task for next week
[18:38] < Lawouach> re-organise your Sketch directory so that you can have
[18:38] < Lawouach> tags, branches and a trunk
[18:38] < orphans> ok, cool
[18:38] < Lawouach> the branches is quite useless really considering your trunk will be in a constant move but let's follow the good practices of our elders
[18:39] < orphans> yup, cool
[18:39] < Lawouach> https://svn.defuze.org/ < -- I guess something like this.
[18:40] < orphans> yeah
[18:40] < Lawouach> Now, considering what you told me earlier about being able to use parts of the application
[18:40] *** vmlemon__ has joined #kamaelia
[18:40] < Lawouach> Could it mean that I'd be able to do an import of some of your modules?
[18:40] < Lawouach> And use components for your applications?
[18:40] < Lawouach> assuming they have a specific purpose that fit my needs
[18:41] < orphans> yeah, definitely
[18:41] < Lawouach> what kind of import would I be doing?
[18:41] < Lawouach> do you have an example?
[18:42] < Lawouach> even a fake one :)
[18:42] < orphans> not as such - it should be something like 'from jam.UI.XYPad import XYPad'
[18:42] < Lawouach> good
[18:42] < Lawouach> that's what I wanted to know
[18:42] < Lawouach> okay
[18:42] < orphans> so almost everything except jam.py would get installed into site-packages/jam
[18:42] < orphans> or similar
[18:42] < Lawouach> well then don't we have a problem with the way you have setup your Sketch directory?
[18:43] < Lawouach> I don't see a "jam" directory there yet
[18:43] < orphans> yeah - I was going to sort that out nearer things being vaguely sorted
[18:43] < orphans> I guess I'm just building developer debt there though :)
[18:43] < Lawouach> Hah!
[18:43] < Lawouach> :)
[18:44] < Lawouach> Good
[18:44] < Lawouach> then in reality, what should we have is something along:
[18:44] < Lawouach> Sketches/JT/application/tags
[18:44] < Lawouach> Sketches/JT/application/trunk
[18:44] < Lawouach> Sketches/JT/application/trunk/LetsJam
[18:45] < Lawouach> Sketches/JT/library/tags
[18:45] < Lawouach> Sketches/JT/library/trunk/Jam
[18:45] < Lawouach> Eventually:
[18:45] < Lawouach> Sketches/JT/library/trunk/Jam/setup.py
[18:45] < Lawouach> Sketches/JT/library/trunk/Jam/Jam/UI
[18:45] < Lawouach> Sketches/JT/library/trunk/Jam/Jam/Utils
[18:45] < Lawouach> Sketches/JT/library/trunk/Jam/Jam/Protocol
[18:46] < Lawouach> LetsJam would contain the data and the main application module
[18:46] < Lawouach> Which would have:
[18:46] < Lawouach> from Jam.UI.XYPad import XYPad
[18:47] < Lawouach> How does it sound to you?
[18:47] < orphans> yeah, sounds cool
[18:47] < vmlemon__> kamaeliabot: dance
[18:47] Reply: does the macarena
[18:47] < orphans> quick question about that - how do you work path stuff?
[18:48] *** MS- has joined #kamaelia
[18:48] < Lawouach> orphans: what do you mean?
[18:48] < orphans> do you just add Sketches/JT/library/trunk/Jam to pythonpath globally?
[18:48] *** MS- read logs, and jumps in to suggest Kamaelia.Apps.Jam as the namespace
[18:48] < Lawouach> Hello MS-
[18:48] < orphans> or do you do some python-fu in application/trunk/LetsJam?
[18:49] < orphans> hey MS-
[18:49] < Lawouach> MS-: Yeah I wasn't sure about that one.
[18:49] < MS-> hi
[18:49] < Lawouach> orphans: You don't add that path
[18:49] < Lawouach> As you can see there is a setup.py
[18:49] < orphans> so just setup.py often :)
[18:49] < Lawouach> That'll install your Jam library to the site-packages
[18:50] < MS-> The rationale behind it is that if the apps are all sitting Kamaelia.Apps.* , it makes it alot easier to reuse functionality from all apps
[18:50] < orphans> MS-, so Kamaelia.Apps.Jam would be where the modules I import in the main app come from?
[18:50] < MS-> yes
[18:51] < MS-> I'm expecting that all the exemplar projects to end up having a directory in /Code/Python/Apps (for packaging)
[18:51] < Lawouach> in other word you could setup your directoyr like this:
[18:51] < Lawouach> Sketches/JT/library/trunk/Jam/Kamaelia/Apps/Jam
[18:52] < MS-> and for their support modules, if not merged into the mainline areas, to be in Kamaelia.Apps.< appname>
[18:52] < Lawouach> Sketches/JT/library/trunk/Jam/setup.py
[18:52] *** Davbo has joined #kamaelia
[18:52] < Lawouach> okay
[18:52] < Lawouach> cool
[18:52] < orphans> yeah, got it
[18:52] < MS-> I'll sit back for a bit and stop interfering now, since I think that's sufficient info :)
[18:52] < MS-> (I hope :) )
[18:53] < Lawouach> orphans: the main idea here is for you to see that your application and its core should be distinguished.
[18:53] < MS-> (btw, "expecting" is a bit OTT there, "hoping" is perhaps better)
[18:53] *** MS- goes quiet
[18:53] < Lawouach> ;)
[18:53] < orphans> Lawouach, yeah, cool
[18:54] < Lawouach> This is really important because you need to help yourself with the way you lay your application out on the filesystem.
[18:54] < Lawouach> You wouldn't believe how a wrong choice at the very beginning can cost you a lot later on.
[18:54] < orphans> heh, I can imagine
[18:55] < Lawouach> Refactoring is a dandy word in those evil worlds of J2EE and .NET as they have proper tools for that
[18:56] < orphans> yeah. I'm sure I'm going to spend a fair bit of time getting the timing code "just right" now rather than later - kinda thing which would be a nightmare to change
[18:56] < MS-> "You wouldn't believe how a wrong choice at the very beginning can cost you a lot later on"
[18:56] < MS-> Oh yes indeed. < /heckle>
[18:56] < Lawouach> :)
[18:57] < Lawouach> orphans: may I ask you which editor you're programming with?
[18:57] < orphans> vim
[18:57] < Lawouach> hard core :p
[18:57] < orphans> for my sins...
[18:57] < orphans> I learnt it, and now can't change - I keep typing i at the start of sentencer :)
[18:57] < orphans> s/sentencer/sentences
[18:58] < Lawouach> well that's actually good from my POV. It forces you using only a small necessary set of tools.
[18:58] < orphans> I love it really though :)
[18:58] < Lawouach> I'm using emacs personally and I never bother learning more than just the more common commands.
[18:58] < orphans> same here
[18:59] < Lawouach> I use Eclipse at work and I like it until something goes wrong. Like a path that is set somewhere I forgot about
[18:59] < orphans> mm, I use eclipse on windows
[18:59] < Lawouach> Then I realize how those IDEs hide from me.
[19:00] < orphans> IDEs scare me slightly :)
[19:00] < orphans> too many buttons and modes and things
[19:00] < Lawouach> :)
[19:00] < Lawouach> good then make sure your application is designed as cleanly as vim :)
[19:01] < Lawouach> For a developer going through the source code is like a second nature
[19:01] < Lawouach> Developers understand a lot of your design decisions we were discussing earlier just like that
[19:02] < Lawouach> If a developer fails to grasp what your directory structure means he/she may struggle using it anyway
[19:02] < Lawouach> Developers don't like writing doc. They don't like reading docs much more IMO :)
[19:02] < orphans> :)
[19:03] < Lawouach> Be clear and ensure your structure means something by itself. Document the rest :)
[19:03] *** orphans adds to the_tau_of_lawouach.txt
[19:03] < Lawouach> :)
[19:03] < Lawouach> I'm levitating
[19:03] < orphans> heh
[19:04] < Lawouach> That might sound a bit out there but if you start really enjoying writing code you will be less and less encline at accepting messy developers.
[19:05] < Lawouach> The funny thing is that the don't reivent the wheel often comes because a developer refactored some code at the directory structure level to suit its mindset
[19:05] < orphans> I do look back at stuff I wrote a long time ago and cringe :)
[19:05] < Lawouach> Not because he added any value to the code.
[19:05] < Lawouach> orphans: good. so do I :D
[19:06] < orphans> occasionally look back at something I wrote yesterday and cringe :D
[19:06] < Lawouach> s/its/his
[19:06] < Lawouach> bach I haven't written a line since last week because I have a big refactoring ahead of me and I don't yet see it
[19:06] < Lawouach> The force is not strong enough
[19:06] < Lawouach> :D
[19:07] < orphans> heh
[19:07] < Lawouach> anyway
[19:07] < Lawouach> That was supposed to be quick
[19:07] < Lawouach> I'm sorry I kept you
[19:07] < Lawouach> That's all for me
[19:07] < orphans> no probs
[19:07] < orphans> actually, if you're not busy can I keep you for five minutes more?
[19:07] < Lawouach> If you've got more questions... hit me :)
[19:07] < Lawouach> You can
[19:07] < orphans> you're on ubustu atm right?
[19:07] < Lawouach> I am
[19:08] < orphans> can you see whether TimingTest.pd from sketches/JT/PD runs OK?
[19:09] < Lawouach> how do I test it?
[19:09] < Lawouach> what should I get?
[19:09] < orphans> open it up in pd (preinstalled with ubustu I think)
[19:10] < orphans> hopefully all the boxes will be solid rather than dotted, and it won't complain too much
[19:10] *** Lawouach finds amusing that 'pd' is a slang term for 'gay' in French.
[19:10] < orphans> :)
[19:10] < vmlemon__> Ubustu? Is that how you'd describe Ubuntu when it "works"? ;)
[19:10] < orphans> you learn something new every day :)
[19:10] < vmlemon__> (i.e., when it's broken)
[19:11] < Lawouach> orphans: http://rafb.net/p/GRS9Hu62.html
[19:11] < Lawouach> That's what it says
[19:11] < Lawouach> but the diagram opens up
[19:12] < orphans> *sigh* - thought it might say that
[19:12] < Lawouach> They are dotted though
[19:12] < orphans> what's the point in installing pd if you don't get anything with it
[19:14] < orphans> Lawouach, I think for most of the "it makes noise" testing from now on I'll be using PD - if you want to try stuff out theres a more comprehensive package here - http://puredata.info/downloads
[19:15] < Lawouach> okay
[19:15] < orphans> I'll keep everything with vanilla components as much as possible, but as Ubustu doesn't come with the OSC bits it's not particularly useful in it's vanilla state
[19:16] < orphans> should mean there's a fairly easy to install thing for testing on anyways - the pd-extended packages are pretty awesome
[19:17] < orphans> right, I'm off to revise a little more now - thanks for the help Lawouach and MS-
[19:17] < Lawouach> np
[19:17] < Lawouach> Good luck :)
[19:17] < orphans> ta
[19:18] < MS-> enjoy
[19:18] *** MS- also goes afk for a bit
[19:18] *** MS- is now known as ms-away
[19:22] *** j_baker has joined #kamaelia
[19:44] *** Davbo thinks orphans should commit the_tau_of_lawouach.txt ;-)
[19:45] < Davbo> We can review it for merge into the release :P
[19:45] < Lawouach> :p
[20:12] *** bcarlyon|ubuntu has joined #kamaelia
[20:42] < ms-away> import that
[20:45] < j_baker> Speaking of the tau of Lawouach: I was going to try to spend some time reviewing headstock this week. I know it's undocumented, so do you have any suggestions for a starting place?
[20:46] < Lawouach> Hell?
[20:46] < Lawouach> j_baker: Really it depends on what you're looking for
[20:47] < Lawouach> I'd say that the simplechat example is good to start up with
[20:47] < j_baker> What I'd like to do is find a way to drop in the ability to use XMPP in the MoreComplexServer/ServerCore somehow.
[20:48] < Lawouach> http://trac.defuze.org/browser/oss/headstock/headstock/example/simplechat/simplechat.py
[20:48] < Lawouach> I'm not sure that's the right way of seeing it.
[20:48] < Lawouach> I'm currently working on a much more complex example of headstock
[20:49] < Lawouach> And I had started using headstock as part of the single process running my HTTP server (usinh CherryPy but doesn't really matter)
[20:49] < Lawouach> I'm changing that as we speak for a more decoupled management
[20:50] < Lawouach> In other words, my XMPP code runs in its own process.
[20:50] < Lawouach> The HTTP server runs in its own process too
[20:50] < j_baker> I see. I'll spend some time reviewing that then and move on from there. For now I just want to get an idea of what headstock is like so I can give ms-away a sensible idea of how long it's going to take me to adapt my code to use it.
[20:50] < Lawouach> simplechat is good to do that I think
[20:50] < Lawouach> and asking me questions as well
[20:51] < Lawouach> You might want to consider bucker too
[20:51] < Lawouach> hang on
[20:51] < Lawouach> http://trac.defuze.org/wiki/bucker
[20:51] < ms-away> j_baker: The only reason I'd like a sensible idea of < insert random thing> is so that you get a sensible idea of < insert random thing> :-)
[20:51] < Lawouach> It's a small queue messaging system I had written months ago
[20:51] < ms-away> Reality can be far quicker/slower
[20:52] *** ms-away thinks TCPServer should revert to something similar to what it used to be called
[20:53] < ms-away> eg something like PrimaryListenerSocket, or TCPListener
[20:53] < ms-away> and then ServerCore could be TCPServerCore (perhaps)
[20:53] < Lawouach> It's much simpler than hadstock to start up with but provides a good perspective on adding Kamaelia's server components
[20:53] < ms-away> (after all there's lots of other servers out there)
[20:53] < j_baker> Understandable ms-away. At any rate, I need to figure out how much time to allocate for this, so I figure that's the best place to begin.
[20:53] < ms-away> (Wouldn't directly affect any existing servers)
[20:54] < ms-away> j_baker: seems very reasonable :)
[20:54] < Lawouach> j_baker: https://svn.defuze.org/oss/bucker/scripts/queue-server.py for instance
[20:54] < j_baker> Alright. I'll check into that Lawouach.
[20:54] < Lawouach> That code is actually quite handy too :D
[20:55] < Lawouach> if you need message queuing capabilities without too much overhead :)
[20:56] < Lawouach> I wonder sometimes how I manage to keep track of all the code I'm writing :)
[20:56] < j_baker> I'm sure at some point, that will become a necessity. Especially when I start to write the intermediary.
[20:56] < j_baker> Just out of curiosity, what's your "real" job, Lawouach?
[20:57] < Lawouach> developer
[20:58] < Lawouach> mind you not a single of those projects come from any of my job
[20:58] < Lawouach> although I did have a few months last fall with a job that gave me plenty of time :)
[21:00] < j_baker> Wow. That's pretty amazing. That's a lot of code to write for it not to be related to your actual job.
[21:00] < Lawouach> yeah well I'm single.
[21:00] < Lawouach> Nothing comes for free :)
[21:00] < j_baker> Plus jobs also tend to demand a break.
[21:01] < Lawouach> well until now I've never had a job that was so demanding on me.
[21:01] < Lawouach> I don't look for responsabilities that much either which helps :)
[21:01] < Lawouach> Responsabilities are great when you have the associated power
[21:01] < Lawouach> That doesn't happen often
[21:02] < Lawouach> Usually you have the responsabilities and the crappy management that goes with them :)
[21:02] < Lawouach> s/crappy/unhappy
[21:02] < Lawouach> guess both are valid :)
[21:02] < j_baker> Heh... I hear that. Plus in my experience no good deed goes unpunished.
[21:03] < j_baker> "Oh, you did that? Thanks! Here's more work!"
[21:03] < Lawouach> But to be honest I just enjoy the code I'm writing. My main problem I think is that I mainly like having to solve a problem. Once I've found a solution I tend to lose interest rather quickly.
[21:03] *** vmlemon_ has joined #kamaelia
[21:04] < Davbo> I think that's the mentality of many developers Lawouach. I know i'm like that :-)
[21:04] < Lawouach> headstock stall for a while because I had found a first design. I wasn't happy with it but it was a proof of concept to myself. Once I felt a need for more I started again.
[21:04] < Lawouach> Davbo: makes me feel less lonely then :D
[21:05] < Davbo> hehe :-)
[21:05] < Lawouach> I'm not sure that makes me a better software developer.
[21:05] < Lawouach> at least not enterpriseyyyyy
[21:06] < Lawouach> bucker came from 1) a need I had for a simple message queue system and 2) a need to find a good well scoped project to play with Kamaelia
[21:07] < Lawouach> I had a problem, I solved it. I moved on and never actually used bucker much (even though I would if I had a problem requiring what it does)
[21:07] < Davbo> Who wants to be a enterprisey developer :P That's for the .NET programmers anyway :-)
[21:07] < Davbo> not Python folk. ;-)
[21:08] < Lawouach> I guess the programing language usually fits the way you think.
[21:08] < j_baker> Well, I would take a second glance at that statement after knowing how much enterprisey developers make. ;)
[21:08] < Davbo> Hehehe
[21:08] < j_baker> But there are more important things than money.
[21:08] < Davbo> Well said j_baker
[21:09] < Lawouach> j_baker: Money that makes you live the life you desire is the right amount. A friend of mine is never happy and too much is never too much.
[21:09] < Lawouach> I don't work like that.
[21:09] < Lawouach> As long as I enjoy my life I'm fine. But the job needs to leave me alone in return :)
[21:10] < j_baker> I agree Lawouach. I'd work for slave wages if I could find a job that I could look forward to coming to every day.
[21:10] < Davbo> I'm a fan of changing language depending on the problem really, which is why i get frustrated with working in Java at university. It NEVER fits the problem :P
[21:10] < Lawouach> Be careful there. I didn't want to convey that idea.
[21:10] < Lawouach> I did a job for a year that was quite cool but it paid barely enough to pay the bills and period
[21:11] < Lawouach> I quit after a year because life sucked :)
[21:11] < Lawouach> You still need decent wages to enjoy life "outside of work" :)
[21:11] < Lawouach> For some it may mean being able to take expensive holidays once in a while
[21:11] < Lawouach> For others being able to pay expensive furnitures
[21:11] < Lawouach> doesn't matter
[21:11] < vmlemon_> Isn't Java part of the problem, rather than part of the solution? ;)
[21:11] *** vmlemon_ ducks
[21:11] < Lawouach> Just find the right amount for you :)
[21:12] < Davbo> Why duck vmlemon_, I think we all agree with that lol :-)
[21:12] *** j_baker doesn't know enough about java to agree or disagree.
[21:13] < j_baker> What exactly is the problem with java anyway?
[21:13] < j_baker> Just out of curiosity.
[21:13] *** ms-away is now known as ms-
[21:13] < j_baker> (there doesn't seem to be any shortage of people disliking it, so I'm just curious)
[21:13] *** Davbo Thinks Lawouach is good at conveying his wisdom :P
[21:13] < ms-> write once, debug everywhere, overly verbose, neither a scripting language, nor C++
[21:14] < Davbo> what ms- said
[21:14] < ms-> It's neither high level enough nor low level enough
[21:14] < Lawouach> Davbo: I don't know. I used to think that way. Like I used to believe Microsoft sucked. That KDE was the way to go and that English girls were crazy not to dress more during winter. Now I just don't care.
[21:14] < vmlemon_> And the slow JVM, although that's subjective...
[21:14] < ms-> It also encourages coding through obfuscation
[21:14] < j_baker> ms- since you're not away right now, I had a question for you.
[21:14] Reply: Hi, I'm a bot. I've been put here to answer faq's and log the channel. You can find the logs at http://yeoldeclue.com/logs/ Please don't ask 'any mentors here' since I'm logging for them. Yes, there is. If you just ask you question
[21:14] Reply: or post your idea, you may get a response - either from a mentor or fellow student or from someone reading the logs.
[21:14] Reply: Regarding applications we will be discussing applications (and maybe asking for improvements) until April 7th or 8th - remember no news may well be good news
[21:14] Reply: Some useful links/tips - use the template : http://kamaelia.sourceforge.net/SummerOfCode2006Template - base page: http://kamaelia.sourceforge.net/SummerOfCode
[21:14] Reply: Tips for a good application - q's to ask yourself: http://yeoldeclue.com/cgi-bin/blog/blog.cgi?rm=viewpost&nodeid=1206709783
[21:14] < vmlemon_> Don't they pretty much encourage people to obfuscate their delivered bytecode, anyway/
[21:14] < vmlemon_> ?
[21:15] *** ms- reads back
[21:15] *** Davbo kicks kamaeliabot in the shins
[21:15] < j_baker> I haven't typed it yet. :)
[21:15] *** ms- still reads back
[21:15] < ms-> ;)
[21:15] < j_baker> I read in PEP 333 that the data returned by the application object should be treated as binary data.
[21:15] < vmlemon_> o.O "...Or if you hate people, you can bank online" (according to a bank advert I just heard on the TV in the other room)
[21:15] < ms-> go on
[21:16] < Lawouach> Davbo: I think it's important to think in such simplistic way only if you're able at some point to realise it really doesn't make much sense and that nothing is so black and white. I'm not saying you do BTW ;)
[21:16] < j_baker> I've noticed that if the app object returns an integer, some component somewhere down the line throws an exception.
[21:16] < Davbo> Yeah I know what you mean
[21:16] < j_baker> (I've forgotten which one)
[21:16] < j_baker> Is that going to be a problem?
[21:17] < ms-> it's not ideal, but a long shot. BUT
[21:17] < ms-> have you seen how bad wsgi_ref handles it?
[21:18] < ms-> I mean, it just comes back with something akin to prolog's "No"
[21:18] < ms-> Something like "An error occurred"
[21:18] < ms-> and that's it
[21:18] < ms-> even if you have tracebacks enabled
[21:18] < ms-> It utterly sucks
[21:18] < ms-> So, whatever you do can't be worse :-D
[21:19] < ms-> if you can log the error somewhere and deal with it even slightly better, you'll be doing along better
[21:19] < ms-> You should always return something valid to the user though
[21:19] < ms-> Even if its as crappy as what wsgi_ref does
[21:19] < j_baker> I see. Would there not be any way to pack that data into a string (like an aray of chars in C) or would that cause more problems?
[21:20] < ms-> I'm not sure what you mean
[21:20] < j_baker> (for the most part, I'm happy with doing better than wsgiref though)
[21:20] < j_baker> Well, say the app object returns a 32 bit integer
[21:21] < j_baker> Could you just convert the binary data into a 4 8-bit char string?
[21:21] < ms-> the app object *can't* return a 32 bit integer. It can return an integer
[21:21] < ms-> (subtle I know, but important to bear in mind)
[21:21] < ms-> My personal feeling is that if you're expecting something that looks like strings
[21:22] < ms-> (which is what that section really means in pratice for discussion unless we start getting really subtle)
[21:22] < ms-> that you are well within your rights to turn round and say "It broke"
[21:22] < ms-> As the string that 32 bit integer gets converted to
[21:23] < j_baker> Ok, no problem. I think I might have just read that section wrong now that I think about it.
[21:23] < ms-> Otherwise, if you don't, you're allowing an error state to pass through, which is generally a bad idea
[21:23] < ms-> You mean this:
[21:23] < ms-> The server or gateway should treat the yielded strings as binary byte sequences: in particular, it should ensure that line endings are not altered. The application is responsible for ensuring that the string(s) to be written are in a format suitable for the client.
[21:23] < ms-> ?
[21:23] < ms-> Or were you querying this:
[21:23] < j_baker> I think it was just meaning "don't convert '\r\n' into '\n'"
[21:23] < ms-> (The server or gateway may apply HTTP transfer encodings, or perform other transformations for the purpose of implementing HTTP features such as byte-range transmission. See Other HTTP Features, below, for more details.)
[21:24] < ms-> That's one example
[21:24] < j_baker> The first one
[21:24] < ms-> It's essentially meaning - don't make any conversions which would be viewed as invalid with regard to the network
[21:24] < ms-> For example, you could force the server to set a header of
[21:24] < ms-> Content-Transfer-Encoding: base64
[21:24] < ms-> or similar
[21:24] < ms-> Which whilst a little mad
[21:24] < ms-> would work
[21:25] < ms-> At that point you'd be converting everything to base64
[21:25] < ms-> However an integer still wouldn't make sense there
[21:26] < j_baker> I understand. I was using that as an example. :) I wasn't sure if there were any client side technologies that woud expect differently.
[21:26] < j_baker> I'll brb though, got to run to the store.
[21:27] *** j_baker is now known as j_baker-brb
[21:27] < ms-> Oh there's always a client that expects differently
[21:28] < ms-> It's why I don't trust network code without battle testing it
[21:28] < ms-> Kinda why only now I'm happy to start merging stuff from Kamaelia Grey (which is primarily where changes for the server come from) onto the /trunk
[21:29] < ms-> Davbo - I've had a rethink about the multi process stuff
[21:29] < ms-> It should go in Kamaelia.Experimental IMO
[21:29] < ms-> since it is
[21:31] < Davbo> Can we fork the pipeline from graphline?
[21:31] < Davbo> Pipeline seems stable
[21:31] < Davbo> perhaps that's a bad idea though.
[21:31] < ms-> I'd like to keep both together
[21:31] < Davbo> that's fair enough ms-
[21:31] < ms-> I'm pretty sure that graphline is a simple fix - just not looked at it yet
[21:32] < Davbo> Well I think we concluded where they should go once we're happy to merge them
[21:32] < Davbo> but I agree
[21:32] < ms-> We did conclude where we thought they should go once we're happy to merge
[21:33] < ms-> I've come to the conclusion since then that merging it without a redflag to anyone saying "Um, this is new, handle with care" might be bad idea
[21:33] < ms-> Oh, this book is good http://www.apress.com/book/view/9781590596241
[21:33] < ms-> Given the conversation earlier
[21:33] < Davbo> Good point ms-
[21:36] < Davbo> is experimental a branch or will actually be in the release just in a folder marked "use with caution" ? :-)
[21:36] < ms-> It's a folder in the release clearly labelled Experimental
[21:37] < Davbo> Ah good, it would be a shame for it to not be in the release
[21:37] < ms-> One of the most useful things about the Linux release process is that even the stable kernels have an Experimental section
[21:37] < ms-> but it will function fine without it
[21:37] < Davbo> hehe :-)
[21:37] < ms-> But sometimes those experimental things are really useful
[21:37] *** ms- can force an error now
[21:37] *** ms- is happy
[21:38] < ms-> The problem is if a component spits out data unexpectedly
[21:38] < Davbo> I'm just finishing writing something up that someone else in my group should have done. Then going to have another look at MagnaDoodle
[21:38] < ms-> k
[21:41] < Davbo> Done, sorry ms-
[21:42] < Davbo> hmm, spits out data unexpectedly?
[21:42] < Davbo> Can I warn it?
[21:44] *** j_baker-brb is now known as j_baker
[21:46] < j_baker> If I'm understanding this properly, the ProcessPipeline Davbo's been testing is just a Pipeline that executes in a different process?
[21:47] < ms-> Tes
[21:47] < ms-> Yes
[21:47] < ms-> Davbo: It's because you're not linking an outbox to something
[21:48] *** ms- reads the comment about "can I have a warning" after commiting
[21:48] < j_baker> That will be really helpful for me here soon. I plan on getting the Web Server code to run in a manner similar to mod_wsgi's daemon mode.
[21:48] < ms-> yes, I put a note saying that may be useful
[21:52] < ms-> Davbo: Debugging/warning flag added
[21:52] < ms-> see the examples at the bottom of /Sketches/MPS/pprocess/MultiPipeline.py for details
[21:52] < ms-> (boils down to __debug = True )
[21:53] < Davbo> right
[21:56] < ms-> OK, fixed MultiPipeline.py , and the examples based on my copy of your MagnaDoodle only now fail due to errors in that version of MagnaDoodle rather than anything I've written :-)
[21:57] < ms-> Thanks for the test case :0
[21:57] < ms-> :)
[21:57] < Davbo> hmm right
[21:57] < Davbo> I'm not sure I see what is wrong
[21:57] < ms-> with what ?
[21:57] < Davbo> the boxes in my MagnaDoodle
[21:58] < ms-> That's still a little terse for me
[21:59] < Davbo> Sorry, I need to look through it ms-
[21:59] < ms-> np
[22:00] < Davbo> Will things which work with Graphline still not necessarily work with ProcessGraphline
[22:00] < ms-> A very very limited subset of things won't work
[22:00] < ms-> You couldn't send an _active_ component across a link for example. You *may* be able to send a "not yet activated" one though.
[22:01] < ms-> (not tried :) )
[22:01] < ms-> Even that limitation probably doesn't hold for kamaelia running on stackless python
[22:01] < ms-> Things like services and the CAT aren't shared across the boundary as well
[22:02] < ms-> which is likely to mean that Backplanes are likely to be "odd" (at best) over the boundary.
[22:03] < ms-> BTW, your core problem is likely to revolve around this:
[22:03] < ms-> ("WINDOW1", "outbox") :("WINDOW2", "inbox"),
[22:03] < ms-> heh
[22:04] < ms-> ("WINDOW1", "outbox") : ("WINDOW2", "inbox"),
[22:04] < ms-> BUT
[22:04] < ms-> inside magnadoodle doing this:
[22:04] < ms-> for event in self.recv("inbox"):
[22:04] < ms-> ...
[22:04] < ms-> if event.type ==
[22:05] < Davbo> Yeah
[22:05] < ms-> while self.dataReady("drawn"):
[22:05] < ms-> print "drawn"
[22:05] < ms-> for this in self.recv("drawn"):
[22:05] < ms-> is a step in the right sort of direction
[22:05] < Davbo> I get the idea
[22:05] < Davbo> Could you just explain this :
[22:05] < Davbo> (22:47:40) ms-: Davbo: It's because you're not linking an outbox to something
[22:05] < ms-> I could just write a version that'd work, but that would kinda miss the point
[22:06] < ms-> Ah that?
[22:06] < ms-> I see
[22:06] < ms-> Well
[22:06] < ms-> you do this:
[22:06] < Davbo> wait wait
[22:07] < Davbo> could you svn update
[22:07] < ms-> WINDOW1 = MagnaDoodle(),
[22:07] < ms-> WINDOW2 = MagnaDoodle(),
[22:07] < ms-> Both of those can spit out messages to "outbox", but you were "only" linking messages from window 1 to window 2
[22:07] < Davbo> that'll clear with Graphline but not ProcessGraphline
[22:07] < ms-> will do
[22:07] < ms-> that was all that MultiProcess was whinging about
[22:08] < Davbo> Yeah I see why that'd make a problem, but only if I put something onto that outbox right?
[22:08] < ms-> That links Window 1 outbox to window2 drawn ?
[22:08] < Davbo> or does that make problems anyway?
[22:08] < Davbo> Yeah
[22:08] < ms-> Yes, right - BUT due to the unique way in which ProcessGraphline works, it saw the data and assumed it was meant to go somewhere and had a panic about it
[22:08] < ms-> even though it didn't
[22:08] < ms-> so there's a long comment to that effect nows
[22:09] < ms-> saying why it isn't an error and passed silently
[22:09] < Davbo> hmm
[22:09] < ms-> Oh, that's an interesting new erro
[22:09] < ms-> error
[22:10] < Davbo> with mine?
[22:10] < ms-> This one:
[22:10] < ms-> Traceback (most recent call last):
[22:10] < ms-> File "MagnaDoodle.py", line 233, in < module>
[22:10] < ms-> __debug = True,
[22:10] < ms-> File "../MPS/pprocess/MultiPipeline.py", line 108, in ProcessGraphline
[22:10] < ms-> D = chan._receive()
[22:10] < ms-> File "/usr/local/lib/python2.5/site-packages/pprocess.py", line 110, in _receive
[22:10] < ms-> raise obj
[22:10] < ms-> KeyError: 'drawn'
[22:10] < ms-> No, that looks like an error in mine
[22:13] < Davbo> ah right
[22:15] < Davbo> oh oh I see
[22:15] < Davbo> what you did with debug that is
[22:15] < ms-> You do ?
[22:16] < ms-> I see :-)
[22:16] < Davbo> not this problem lol :-)
[22:16] < Davbo> Sorry
[22:20] < Davbo> I don't see why it throws that error ms-
[22:21] < ms-> I'm hunting that down
[22:21] < ms-> Does seem a little strange
[22:22] < Davbo> Why does it work with other components but not this?
[22:22] < ms-> I think something hardcoded
[22:23] < vmlemon_> o.O [23:23] < probono> i don't open my important files with bonzi buddy
[22:24] < ms-> OK, I can see the data going OUT the component correctly
[22:24] < ms-> ooooh
[22:24] < Davbo> Well your debug thing works :D
[22:24] < Davbo> WARNING: Data sent to outbox not linked to anywhere. Error?
[22:25] < ms-> Found it
[22:25] < ms-> I think
[22:25] *** ms- looks
[22:26] < ms-> It's due to the way likefile works
[22:27] < ms-> (Written by a GSOC student last summer)
[22:27] < Davbo> What does that do?
[22:27] < ms-> Well, it's intended to give a "bit file like" interface to component
[22:27] < Davbo> I don't see any problems with MultiPipeline
[22:27] < ms-> stepping back a second
[22:27] < ms-> MultiPipeline itself is fine
[22:27] < Davbo> Good
[22:27] < ms-> it's likefile that is bust
[22:28] < Davbo> not so good
[22:28] < ms-> If I do this:
[22:28] < ms-> f = open(somefile)
[22:28] < ms-> f.write(...)
[22:28] < ms-> r.read()...
[22:28] < ms-> I'm actually working with something operating concurrently to the mainline code
[22:28] < Davbo> right
[22:28] < ms-> So the idea was
[22:29] < ms-> G = likefile(somecomponent())
[22:29] < ms-> G.put(data,"inbox")
[22:29] < ms-> G.get("someoutbox")
[22:30] < ms-> And to allow this in non-kamaelia code
[22:30] < ms-> https://kamaelia.svn.sourceforge.net/svnroot/kamaelia/branches/private_MPS_Scratch/Axon/Axon/LikeFile.py
[22:30] < ms-> skip down to the bottom of that
[22:30] < ms-> background = background().start()
[22:30] < ms-> time.sleep(0.1)
[22:30] < ms-> from Kamaelia.Protocol.HTTP.HTTPClient import SimpleHTTPClient
[22:30] < ms-> import time
[22:30] < ms-> p = likefile(SimpleHTTPClient())
[22:30] < ms-> p.put("http://google.com")
[22:30] < ms-> p.put("http://slashdot.org")
[22:30] < ms-> p.put("http://whatismyip.org")
[22:30] < Davbo> yeah just looking at taht
[22:31] < Davbo> clever
[22:31] < ms-> The problem is despite repeated prodding for different usecases, that student never actually pushed their code in areas it should've been pushed.
[22:31] < ms-> Meaning that cases like this never got hit
[22:31] < ms-> Essentially that code should automatically look for extra boxes and it doesn't
[22:31] < Davbo> hmm
[22:31] < Davbo> right
[22:32] < ms-> So that's what I need to fix
[22:32] < ms-> :)
[22:32] < ms-> Another nice test case :)
[22:32] < ms-> ta
[22:32] < ms-> :)
[22:33] < Davbo> Glad I could raise some bugs for you ms- :-)
[22:33] *** ms- sees this:
[22:33] < ms-> validInboxes = type(child).Inboxes.keys()
[22:33] < ms-> validOutboxes = type(child).Outboxes.keys()
[22:33] < ms-> and nearly sobs
[22:34] < ms-> it gets so close and "just doesn't bother"
[22:34] < Davbo> What does that do?
[22:34] < ms-> Well, it does this:
[22:34] < ms-> validInboxes = type(child).Inboxes.keys()
[22:34] < ms-> validOutboxes = type(child).Outboxes.keys()
[22:35] < ms-> inboxes = []
[22:35] < ms-> outboxes = []
[22:35] < ms-> if wrapDefault:
[22:35] < ms-> for i in DEFIN:
[22:35] < ms-> if i in validInboxes: inboxes.append(i)
[22:35] < ms-> for i in DEFOUT:
[22:35] < ms-> if i in validOutboxes: outboxes.append(i)
[22:35] < ms-> inboxes += list(extraInboxes)
[22:35] < ms-> outboxes += list(extraOutboxes)
[22:35] < ms-> ie it checks to see if the component to wrap has the default inboxes
[22:35] < ms-> and outboxes
[22:35] < ms-> and if it does, wraps them
[22:35] < Davbo> Ah right
[22:35] < Davbo> but doesn't wrap something like my "drawn" ?
[22:35] < ms-> If the user specifies others, it wraps those too
[22:36] < ms-> correct
[22:36] < ms-> the fix, AFAICT
[22:36] < ms-> is to do this:
[22:36] < ms-> inboxes = child.Inboxes.keys()
[22:36] < ms-> outboxes = child.Outboxes.keys()
[22:36] < ms-> replacing that entire swathe of logic
[22:37] < Davbo> wouldn't the problem be with the function "list" there not returning all the boxes?
[22:37] < Davbo> oh
[22:37] < ms-> or rather list(child.Inboxes)
[22:39] < ms-> Oh now *that's* unexpected...
[22:39] *** Davbo thinks it's good we've found these problems now rather than later
[22:40] < Davbo> what's up ms-
[22:40] < ms-> indeed
[22:40] < ms-> Changing it to that
[22:40] < ms-> results in series of trackbacks
[22:41] < Davbo> oh dear :(
[22:41] < ms-> This isn't a problem - it's useful
[22:41] < ms-> It means this use case has always existed and always had these problems and wasn't known about
[22:44] < ms-> Ahhh...
[22:44] < ms-> He sidestepped a problem which he didn't know how to handle
[22:44] < ms-> probably because it relates to pygame display objects
[22:44] < ms-> And rather than querying how to solve, just took a decision.
[22:44] < Davbo> Humm, is it solvable?
[22:44] < ms-> Of course :)
[22:45] *** Davbo realised he asked a silly question :D
[22:45] < ms-> Haven't thought about it yet, but of course :)
[22:45] < Davbo> I think i'll call it a day.
[22:45] < ms-> night then :)
[22:45] < Davbo> Good first day to SoC
[22:45] < ms-> indeed :)
[22:46] < Davbo> night all!
[22:46] < Davbo> thanks for the help ms-
[22:46] < ms-> You too :)
[22:54] < j_baker> ms-: I think I might have found a bug in Minimal. Suppose you have a routing that includes ['/static', Minimal.Handler('index.html', './Static/www/')]
[22:55] < j_baker> It then pulls up the page at ./Static/www/static
[22:55] < j_baker> Is this intended behavior?
[22:55] < ms-> Dunno :)
[22:55] *** ms- looks
[22:55] < j_baker> Just checking. I changed it for my web server.
[22:56] < ms-> I think my expectation for
[22:56] < ms-> ['/static', Minimal.Handler('index.html', './Static/www/')]
[22:57] < ms-> given a request for
[22:57] < ms-> /static/index.html
[22:57] < ms-> that it would pull in a file from
[22:57] < ms-> ./Static/www/index.html
[22:58] < ms-> assuming ./Static/www/ to be a relative directory with the docroot
[22:58] < ms-> which it does appear to be
[22:58] < j_baker> Yes. Instead with the code the way it is right now, it tries to pull up ./Static/www/static unless I misconfigured something.
[22:58] < ms-> That's my expectation beyond whatever the code actually does now
[22:59] < j_baker> s/./Static/www/static/index.html / ./Static/www/static
[22:59] < ms-> So you're saying
[22:59] < ms-> /static/index.html
[22:59] < ms-> is served (or trying to be served) from:
[22:59] < ms-> ./Static/www/static/index.html ?
[22:59] < ms-> That to me would be counter intuitive
[22:59] < j_baker> Yup.
[23:00] < j_baker> It may be due to my change that I just made. I'll have to look into it.
[23:00] < ms-> Sounds like that you agree given you've raised it
[23:03] < j_baker> Yep. The reason why it did that was that that the code was set up just to append the raw uri after homedirectory.
[23:03] *** ms- nods
[23:03] < ms-> That does seem a bit wrong in that context
[23:09] < j_baker> I'll have to check PEP 333 for anything I might have missed, but tomorrow I'm going to try testing what I have with MoinMoin or some other WSGI software and see how that goes.
[23:10] < j_baker> But I'm off to a friend's Memorial Day party so I'll talk to you guys later. :)
[23:11] *** j_baker is now known as j_baker-away
[23:18] *** ms- sends a note regarding the likefile issue to the list
[23:18] < ms-> (not fixing *now* so any feedback on suggested workaround welcom)
[23:21] *** vmlemon__ has joined #kamaelia
[23:22] *** vmlemon__ is now known as vmlemon_
[23:44] *** ms- has parted #kamaelia