[05:19] < Lawouach_> morning |
[07:29] *** Uraeus has joined #kamaelia |
[09:40] *** orphans has joined #kamaelia |
[09:48] *** bcarlyon|laptop has joined #kamaelia |
[10:03] *** wyleu has joined #kamaelia |
[10:03] *** vmlemon_ has joined #kamaelia |
[10:05] < vmlemon_> Hi |
[10:21] *** MS- has joined #kamaelia |
[10:21] < MS-> afternoon |
[10:22] < Lawouach_> hello MS- |
[10:28] < MS-> how's things? |
[10:30] < Lawouach_> Rather quietly |
[10:32] *** vmlemon_ has joined #kamaelia |
[11:15] *** Davbo has joined #kamaelia |
[11:32] < MS-> Woo - BBC is sponsoring Pycon UK :-) |
[11:32] < aa_> woo |
[11:32] < aa_> Free Dr Who Tshirts all around then! |
[11:32] < vmlemon_> Cool |
[11:33] < MS-> aa_: heh. Currently proposed is sponsoring lanyards & breakfast for the 3 days - I can't remember whether they're taken though, so it may be a room being sponsored or similar. |
[11:34] < MS-> You would not *believe* how difficult it is to get doctor who anything :) |
[11:34] < aa_> hah |
[11:34] < Lawouach_> ah :) |
[11:34] < Lawouach_> when and where is it again? |
[11:34] < aa_> well, I have to say that this is the best use of my license fee I ever heard |
[11:34] < aa_> 12-14/09 |
[11:37] < Lawouach_> ta |
[11:38] < MS-> aa_: Cool :) |
[11:38] < MS-> Lawouach_: Birmingham, 12-14th |
[11:38] < MS-> sept |
[11:41] < Lawouach_> Damn I might be interested in showing up |
[11:41] < Lawouach_> But I doubt I'll have the time |
[11:41] Reply: Hi, I'm a bot. I've been put here to answer faq's and log the channel. |
[11:41] Reply: I've not really been configured yet, so I won't do much here yet :-) |
[11:41] < Lawouach_> I'll check it out nonetheless, that'd be cool |
[11:56] < Lawouach_> someone in my project has managed to make the logger module even more complicated than it currently is |
[11:56] < Lawouach_> impressive |
[11:56] < Lawouach_> s/logger/logging |
[11:57] < vmlemon_> aa_: It beats some of the stuff they produce, but it's nice to see that the BBC really do have "something for everyone" ;) |
[12:02] < Lawouach_> I can't believe the mess he's created with his logging wrapper |
[12:03] < Lawouach_> It makes no sense |
[12:04] < vmlemon_> Hmm, logging module in the Headstock stuff? |
[12:04] < Lawouach_> no |
[12:04] < Lawouach_> at work |
[12:04] < vmlemon_> Or something else? |
[12:04] < vmlemon_> Aah |
[12:05] < Lawouach_> I want to cry just by having to use such crap |
[12:08] < Lawouach_> Interesting. People must not get scared enough about global warming. Currently the air conditioning is on while the window is opened |
[12:09] < Lawouach_> sigh |
[12:21] < MS-> Well, it's raining here |
[12:26] < vmlemon_> Same deal here |
[12:26] *** vmlemon_ has just noticed |
[12:33] < MS-> finally remembers why 150GB of storage on a machine at work is being used |
[12:36] < Davbo> I need to book for pycon UK right MS-? |
[12:37] < Davbo> Oh I've found it, sorry I got lost on the site. |
[12:43] < MS-> Davbo: yep :) |
[12:44] < Davbo> Yay for Concessions ;-) |
[12:44] < MS-> indeed :) |
[12:44] *** Davbo plays the poor student card |
[12:47] < Davbo> Humm, wondering where to stay. |
[12:52] < MS-> The etap (bookable via the pycon website) is probably the cheapest thing you can get. I stayed there last year and it was perfectly fine. |
[12:53] < MS-> Though I'm planning on staying in the travelodge this year :) |
[12:53] < MS-> which is pricier, but I like travelodges :) |
[12:53] < MS-> hurrah o |
[12:53] < MS-> for ansi sequences: |
[12:53] < MS-> i, L = 0, "\|/-" |
[12:53] < MS-> while 1: |
[12:53] < MS-> sys.stdout.write(L[i]) |
[12:53] < MS-> sys.stdout.flush() |
[12:53] < MS-> sys.stdout.write( chr(27) + "[1D") |
[12:53] < MS-> sys.stdout.flush() |
[12:53] < Davbo> Heh, I'll just go with Etap I think ;-) |
[12:53] < MS-> time.sleep(0.1) |
[12:53] < MS-> i = (i + 1) % len(L) |
[12:54] < MS-> It's nice enough :) |
[12:54] < MS-> You get a room which consists of a double bed with a bunk bed on top, which is a little odd :) |
[12:55] < Davbo> Yeah that's what I was just reading.... |
[12:56] < MS-> http://www.flickr.com/photos/holizz/1356676970/in/set-72157601943861820/ |
[12:56] < Davbo> I've stayed in worse |
[12:57] < MS-> So have I |
[12:57] < MS-> Seriously, I just prefer travelodges :) |
[12:57] < MS-> There's nout wrong with it at all |
[12:58] < MS-> I am however very grumpty in the morning, and being accosted by someone in the hotel who happened to know I work at the BBC to complain about the audio quality of radio 3 on DAB ... |
[12:58] < MS-> ... well lets just say I'd like to avoid that again :) |
[12:58] < Davbo> Hah |
[12:58] < vmlemon_> Hmm, the whole thing about most DAB stations being broadcast in mono? |
[12:59] < vmlemon_> (AKA "CD-Quality Sound") ;) |
[13:00] < MS-> vmlemon_: No it was a complaint about the bit rate it's broadcast at being too low |
[13:00] < MS-> Which is true - it is |
[13:00] < vmlemon_> Aah |
[13:01] < MS-> The DAB network was designed with a minimum bitrate in mind of 192 kbit/s |
[13:01] < MS-> So radio 3 being at 128kbit/s MP2 encoding is very noticeable |
[13:01] < MS-> MP2 is used because it's fixed bit rate |
[13:02] < MS-> Stations running at 64Kbit/s give DAB a very bad name |
[13:02] < vmlemon_> Any idea about the DAB+ thing? |
[13:02] < vmlemon_> Other than it using different codecs, and supposedly being non-backwards compatible for the most part |
[13:03] < MS-> Not my area at all really |
[13:03] < MS-> neither are really |
[13:04] < MS-> Only really know anything about DAB because the person who was my manager for my first 3 years at the beeb (and therefore responsible for allowing kamaelia to happen) was the person who put in the bid for the first DAB transmitters to go up |
[13:04] < MS-> sigh |
[13:13] *** Davbo already has a clash in the things he wants to see http://www.pyconuk.org/timetable.html |
[13:13] < Davbo> Django and PyQT4 |
[13:16] < Davbo> lots of cool stuff, I'd like to see Mark Shuttleworth's keynote |
[13:26] < aa_> yes, excited about that too |
[13:36] < MS-> He's a good speaker - he did a talk at Europython 5 years ago which was really interesting |
[13:36] < MS-> (maybe 4) |
[13:36] < MS-> He was talking about lots of stuff and the fact he was starting up a python friendly linux distribution, that he couldn't share the name of at that point in time since he was still getting trademarks etc sorted |
[13:37] < vmlemon_> Pythubuntu®? ;) |
[13:45] < orphans> kamaelia => real-time audio output is starting to actually work relatively well for me. Makes me very happy :) |
[13:47] < Davbo> good to hear orphans |
[13:48] < orphans> it's been a bit of a slog, but things are starting to do what they're supposed to :) |
[13:51] < orphans> actually Davbo, whilst you're around, I don't suppose you've tackled the problem of getting Paint to shut down yet have you? |
[13:52] < Davbo> Oh I have looked into it, it seems pretty easy. Will have another look for you later today. |
[13:53] < orphans> ok, cool. it's somewhere on my list of stuff to do this week, and not one I'm particularly looking forward to :) |
[13:53] *** orphans notes that my list of stuff to do this week is rather long |
[13:59] < orphans> MS-, ping? |
[14:04] < orphans> or Lawouach_? |
[14:07] < MS-> orphans: pong |
[14:07] *** MS- runs and hides |
[14:07] < orphans> :) |
[14:07] < MS-> (seriously, need caffiene, back in a sec) |
[14:08] < orphans> hopefully this won't be too hard - I'll ask the question and you'll probably be back by then :) |
[14:09] < orphans> I'm looking at making the SchedulingComponent a mixin so I can get the adaptive comms stuff easily |
[14:09] < orphans> the problem is within SchedulingComponent I overwrite the pause() method, and call super(SchedulingComponent, self).pause(pauseTime) |
[14:10] < orphans> which if I understand correctly won't work if it's a mixin because I'll be subclassing from object, not from the component |
[14:11] < MS-> back |
[14:11] *** MS- reads |
[14:11] < orphans> so is there any way to call the class which you are mixing into? |
[14:11] *** MS- scribbles an example |
[14:16] < MS-> ok, pastebin... |
[14:17] *** MS- waits for browser... |
[14:17] < MS-> OK, pastebin hates me |
[14:17] *** mhrd has joined #kamaelia |
[14:17] < orphans> :) |
[14:18] < orphans> nopaste? |
[14:18] *** mhrd is now known as mhrd-afk |
[14:18] < MS-> orphans: pastebin not responding |
[14:18] < MS-> OK, given this import |
[14:18] < MS-> import time |
[14:18] < orphans> http://www.rafb.net/paste/ |
[14:18] < MS-> You can have one base class |
[14:19] < MS-> http://rafb.net/p/LM6ZOH16.html |
[14:19] < MS-> pauser == component |
[14:19] < MS-> notpauser == adaptivecomms |
[14:19] < MS-> Barker == mixin |
[14:19] < MS-> 3 different ways of using those things |
[14:20] < MS-> Note that |
[14:20] < MS-> class HisDoggy(Barker, notpauser): |
[14:20] < MS-> def pause(self): |
[14:20] < MS-> super(HisDoggy, self).pause() |
[14:20] < MS-> print "fx: OK, I'll pause" |
[14:20] < MS-> time.sleep(1) |
[14:20] < MS-> calls pause in notpauser |
[14:20] < MS-> search term to understand this is "python mro" |
[14:20] < MS-> which is method resolution order |
[14:20] < MS-> ~> ./example.py |
[14:20] < MS-> My Doggy |
[14:20] < MS-> woof |
[14:20] < MS-> fx: dramatic pause |
[14:20] < MS-> woof |
[14:20] < MS-> -------------- |
[14:20] < MS-> Your doggy |
[14:21] < MS-> woof |
[14:21] < MS-> fx: |
[14:21] < MS-> woof |
[14:21] < MS-> -------------- |
[14:21] < MS-> His doggy |
[14:21] < MS-> woof |
[14:21] < MS-> fx: |
[14:21] < MS-> fx: OK, I'll pause |
[14:21] < MS-> woof |
[14:21] < MS-> -------------- |
[14:21] < MS-> is the output |
[14:22] < orphans> give us a minute to try and understand it, and I'll shout if I'm lost :) |
[14:22] < MS-> k |
[14:23] < MS-> By way of similarity, consider what happens in a normal component when you do this: |
[14:23] < MS-> super(MyComponent, self).__init__(**argd) |
[14:28] < orphans> MS-, sorry, still a bit lost. From that I think I'd have my pause() method in SchedulingComponent which would call self.pause(), calling the pause method of the component? |
[14:28] < orphans> which sounds wrong to me :) - I don't think I'm getting it |
[14:31] < MS-> You haven't specified the bit that allows me to answer your question |
[14:31] < orphans> sorry, hang on - I'll stick something up |
[14:31] < MS-> class pauser(object): |
[14:31] < MS-> def pause(self): |
[14:31] < MS-> class notpauser(object): |
[14:31] < MS-> def pause(self): |
[14:31] < MS-> class Barker(object): |
[14:31] < MS-> def woof(self): |
[14:31] < MS-> class MyDoggy(Barker, pauser): |
[14:31] < MS-> class YourDoggy(Barker, notpauser): |
[14:31] < MS-> class HisDoggy(Barker, notpauser): |
[14:31] < MS-> def pause(self): |
[14:32] < MS-> super(HisDoggy, self).pause() |
[14:32] < MS-> for example |
[14:32] < MS-> allows me to answer that q |
[14:32] < MS-> It's worth noting in that example |
[14:32] < MS-> class Barker(object): |
[14:32] < MS-> def woof(self): |
[14:32] < MS-> print "woof" |
[14:32] < MS-> self.pause() |
[14:32] < MS-> print "woof" |
[14:32] < MS-> self.pause() can refer to self.pause inside any of these: |
[14:32] < MS-> class pauser(object): |
[14:32] < MS-> class notpauser(object): |
[14:32] < MS-> class HisDoggy(Barker, notpauser): |
[14:33] < MS-> and you can see the right thing happening... |
[14:35] < orphans> so I'd have the pause() method in SchedulingACComponent, and all of the rest of the methods in SchedulingComponentMixin? |
[14:35] < MS-> yes |
[14:36] < orphans> ahh, ok |
[14:36] < MS-> I presume |
[14:36] < MS-> Not seeing any code... |
[14:36] < orphans> yeah, that was the bit I didn't get |
[14:48] *** bcarlyon|laptop has joined #kamaelia |
[14:48] *** orphans has joined #kamaelia |
[14:48] *** Davbo has joined #kamaelia |
[14:48] *** mhrd-afk has joined #kamaelia |
[14:48] *** Uraeus has joined #kamaelia |
[14:48] *** vmlemon_ has joined #kamaelia |
[14:48] *** MS- has joined #kamaelia |
[14:48] *** j_baker has joined #kamaelia |
[14:49] *** Lawouach_ has joined #kamaelia |
[14:49] *** vmlemon has joined #kamaelia |
[14:49] *** aa_ has joined #kamaelia |
[14:49] < orphans> ooi is there any way where you don't have to duplicate the pause() method, or is that impossible? |
[14:49] *** bcarlyon|laptop has joined #kamaelia |
[14:50] < MS-> and they're back again |
[14:50] < MS-> orphans: I'm not sure what you mean |
[14:50] < MS-> But then you've not really posted any pointers to any code :-/ |
[14:51] < MS-> The point of using a mixin is to avoid code duplication |
[14:52] < orphans> sorry, 2 secs and I'll post an example |
[14:53] < Davbo> netsplit? |
[14:54] < vmlemon_> Yup :( |
[14:55] < orphans> MS-, http://rafb.net/p/ZPXdU025.html |
[14:57] < orphans> ideally pause() in SchedulingComponent would call pause() from whatever it's 'partner' component was, so you don't have to duplicate it in every new component you make |
[14:57] < MS-> orphans: I don't understand the problem |
[14:57] < MS-> # Check some stuff |
[14:58] < MS-> doesn't actually tell me "I need to do this" |
[14:58] < MS-> or "I'm doing this because I think I should" |
[14:58] < MS-> Have you done the copy and paste version that I recommended you do first? |
[14:58] < orphans> the "Check some stuff" bit isn't really important, it's just showing it doing things |
[14:58] < MS-> If you know what you're doing, then jumping straight to mixin is fine |
[14:58] < MS-> if you don't then it's very hard to follow what you're doing |
[14:59] < orphans> k, sorry |
[14:59] < MS-> Also, you're not showing where self.pause() is originally called from |
[14:59] < orphans> what copy and paste version? - I think I lost a message in the netsplit |
[14:59] < MS-> when we discussed the other day |
[14:59] < orphans> oh, sorry, yeah I see |
[15:00] < MS-> In http://rafb.net/p/ZPXdU025.html , |
[15:00] < MS-> self.pause() is never called |
[15:00] < MS-> So I really can't tell which is which or why it's that way |
[15:00] < MS-> Basically: "insufficient data for sensible response" |
[15:00] < orphans> k, I'll make a better example |
[15:00] < mhrd-afk> orphans: you're saying your mixin wishes to implement its own pause method, that will call the pause method of the thing it is mixed into, but that that isn't going to happen? |
[15:01] < MS-> I'm guessing that *all* the pauses there aren't necessary at present :) |
[15:01] < orphans> mhrd-afk, yes :) |
[15:01] < MS-> My *guess* though is that you just delete the latter to |
[15:01] < MS-> two |
[15:01] < mhrd-afk> I take it you've tried it? |
[15:01] < mhrd-afk> :) |
[15:01] < MS-> orphans: if you subclass |
[15:01] < MS-> SchedulingACComponent(threadedadaptivecommscomponent, |
[15:01] < MS-> and don't have def pause(self): |
[15:01] < MS-> in there |
[15:02] < MS-> it will call |
[15:02] < MS-> def pause(self): |
[15:02] < MS-> correctly |
[15:02] < MS-> SchedulingComponentMixin.pause correctly |
[15:02] < MS-> which *will* correctly call |
[15:02] < MS-> threadedadaptivecommscomponent.pause |
[15:03] < MS-> due to |
[15:03] < MS-> a) deriving from object |
[15:03] < MS-> b) using super |
[15:03] < MS-> c) python's method resolution order being sensible |
[15:03] < orphans> so how does SchedulingComponentMixin know about threadedadaptivecommscomponent when it calls super? |
[15:03] < MS-> But fundamentally, I tend to make things mixins *after* getting the code working |
[15:04] < mhrd-afk> super() is resolved dynamically at runtime |
[15:04] < MS-> google |
[15:04] < MS-> for |
[15:04] < mhrd-afk> its a method call |
[15:04] < MS-> "python mro" |
[15:04] < MS-> super is a little but more interesting than just a method call :) |
[15:04] < mhrd-afk> (if I understand correctly) |
[15:04] < MS-> but essentially right :) |
[15:04] < orphans> ahh, ok. I never knew that |
[15:04] < orphans> MS-, I looked at the python mro doc and get very very lost I'm afraid |
[15:05] < MS-> orphans: |
[15:05] < MS-> well, in your code |
[15:05] < MS-> class SchedulingComponentMixin(object): |
[15:05] < MS-> is equivalent to |
[15:05] < MS-> class Barker(object): |
[15:05] < MS-> in http://rafb.net/p/LM6ZOH16.html |
[15:05] < MS-> You'll note that Barker calls self.pause() |
[15:06] < MS-> but doesn't contain a pause method |
[15:06] < MS-> Barker should be called BarkerMixin |
[15:06] < MS-> class pauser(object): |
[15:06] < MS-> class notpauser(object): |
[15:06] < MS-> are equivalent to |
[15:06] < MS-> component & threadedcomponent |
[15:06] < MS-> class MyDoggy(Barker, pauser): |
[15:06] < MS-> class YourDoggy(Barker, notpauser): |
[15:07] < orphans> oh, yeah, I'm an idiot |
[15:07] < MS-> are equivalent to your |
[15:07] < MS-> class SchedulingComponent(threadedcomponent, SchedulingComponentMixing): |
[15:07] < MS-> class SchedulingACComponent(threadedadaptivecommscomponent, SchedulingComponentMixing): |
[15:07] < MS-> and |
[15:07] < MS-> class HisDoggy(Barker, notpauser): |
[15:07] < MS-> could also be |
[15:07] < MS-> class HisDoggy(SchedulingComponent) |
[15:07] < MS-> logically speaking |
[15:07] < orphans> sorry MS- I see it now. |
[15:08] < mhrd-afk> http://pastebin.com/meee0c49 |
[15:08] < MS-> HisDoggy is the most interesting of the bunch there really |
[15:09] < orphans> yeah, I get it :) Don't think my brain's really up to speed today |
[15:09] < MS-> It's due to super( ... ) being a little odd that the __super() thing (added by the metaclass) got deprecated |
[15:10] < MS-> Due to the way super( ... ) has to work, it has to break that sort of thing in a metaclass context |
[15:10] < MS-> Probably going to delete the metaclass at some point soon |
[15:11] < orphans> yeah. I thought object was basically a very very simple class which did a little fiddling with arguments etc, and super just told you what the superclasses were |
[15:11] < orphans> but it turns out there's a lot more cleverness behind all that :) |
[15:11] < MS-> Alot |
[15:12] < Davbo> Interesting, when i try to close my pygame window it doesn't throw pygame.QUIT |
[15:12] < orphans> gah, sorry for being an idiot with all that. Is there a doc somewhere describing the stuff that super and object do somewhere? |
[15:17] < MS-> orphans: detailed rant (with pictures) about it: http://fuhm.net/super-harmful/ |
[15:17] < MS-> http://www.python.org/download/releases/2.3/mro/ |
[15:18] < MS-> http://www.python.org/download/releases/2.2.2/descrintro/#cooperation |
[15:18] < MS-> last is written by guido and pretty readable |
[15:19] < MS-> First and last links are probably easiest reads |
[15:19] < MS-> The last tells you how it should work |
[15:19] < MS-> the first tells you all the problems |
[15:20] < orphans> yeah, I found the middle one and got lost |
[15:20] < MS-> The middle one uses words like non-monotonic |
[15:21] < orphans> my eyes went funny after they started using examples with classes A through J :) |
[15:21] < MS-> :) |
[15:21] < MS-> You'll note this: |
[15:21] < MS-> If you do use super, here are some best practices: Use it consistently, and document that you use it, as it is part of the external interface for your class, like it or not. |
[15:21] < MS-> ... which we do :) |
[15:24] *** vmlemon_ has joined #kamaelia |
[15:26] < orphans> that's awful clever all that |
[15:26] < MS-> It's pretty good |
[15:26] < MS-> It deals with the nasty problem of multiple inheritance really quite nicely |
[15:26] < orphans> yeah |
[15:26] < MS-> As long as you remember how to use the "super" call :) |
[15:27] < MS-> It just does what it should :) |
[15:27] < orphans> I've never really needed to use multiple inheritance until now - probably a good thing I suppose |
[15:27] < MS-> Don't worry, many components you're using use it... |
[15:27] < MS-> :) |
[15:28] < MS-> so you're using it indirectly :) |
[15:28] < MS-> You coming to pycon btw ? |
[15:28] < MS-> Seeing as it's now sponsored by the beeb :) |
[15:28] < MS-> (among others) |
[15:29] < Davbo> oooo...Java can't do this... :-) |
[15:29] < Davbo> 'least not afaik |
[15:30] < orphans> perhaps. I might be going on holiday then, I'm not sure yet - people are checking dates etc as I speak :) |
[15:30] < vmlemon_> Hmm, no BBC logo under the "Sponsors" bit? For shame |
[15:33] < MS-> vmlemon_: I only got the reply earlier today, and only got confirmation that the committee like it less than an hour ago :) |
[15:33] < vmlemon_> Aah, cool |
[15:33] < vmlemon_> Hot and fresh off the press |
[15:35] *** Davbo hopes The Dark Knight will still be on at the IMax during Pycon :-) |
[15:36] < MS-> Oh now *that's* a thought |
[15:36] *** MS- hasn't seen that yet |
[15:36] < Davbo> http://www.imax.ac/schedule.htm looks promising |
[15:46] *** Lawouach has joined #kamaelia |
[15:46] < Lawouach> evening |
[15:46] < vmlemon_> Hi Lawouach |
[15:48] < Davbo> Fixed your computer Lawouach? |
[15:48] < Lawouach> borrowed one for now |
[15:54] *** vmlemon_ has joined #kamaelia |
[16:11] < MS-> sigh |
[16:11] < MS-> ok now I get to go home |
[16:11] < MS-> cya guys |
[16:11] *** MS- has parted #kamaelia |
[16:17] *** Davbo hates Paypal |
[16:17] < Lawouach> why? |
[16:18] < vmlemon_> It beats Google Checkout |
[16:19] < Davbo> My account is limited because they thought someone else was accessing it (no way did that happen) and they want me to *fax* proof of id, bank statements for accounts i no longer hold. |
[16:20] < Davbo> I can't even close my account |
[16:20] < vmlemon_> Ouch |
[16:26] *** vmlemon_ has joined #kamaelia |
[16:34] *** MS- has joined #kamaelia |
[16:35] < MS-> j_baker: Jason. If you can't be bothered to quote sections of email properly, please don't expect any answer |
[16:35] < MS-> I ask you repeatedly for information, which you fail to provide |
[16:35] < MS-> I only do so becuase I'm trying to help you and answer your questions, but get basically insulted for the pleasure of doing so |
[16:36] < vmlemon_> Yippee, my Drupal site has became a magnet for comment spam :| (About 4 page of the crap is in my approval queue to be swiftly deleted) |
[16:36] < vmlemon_> *pages |
[16:36] *** bcarlyon|laptop has joined #kamaelia |
[16:37] < MS-> If this wasn't a part of GSOC I would tell you right now to take a flying leap, but you're learning how to treat other people on a project, so I give you the benefit of the doubt. |
[16:37] < MS-> Please learn basic netiquette. |
[16:37] < Davbo> MS-: I just did "Pay by Phone" for Pycon and talked to some chap who is going to pass my details onto "John" who's apparently in a Pycon UK meeting lol |
[16:38] < Davbo> It was very odd :-) |
[16:38] < MS-> If you haven't learnt as a result of gsoc, that being abrasive is not a way to get answers from someone, and not a way to get your code merged, I don't know what you've been doing yet |
[16:38] *** Davbo is now known as Davbo-afk |
[16:39] < MS-> Quite frankly at the moment, the bloody abrasive attitude you have just makes me think "well, I'm spending *hours* writing emails in the hope that I get the basic information I need in order to help you" and you basically go "ah screw him" |
[16:40] < MS-> at least that's how you come across |
[16:41] < MS-> right now to actually go home |
[16:41] *** MS- has parted #kamaelia |
[16:42] < Lawouach> :/ |
[16:54] < orphans> Lawouach, ping? |
[16:55] *** mhrd-afk unsure what's just happened |
[16:56] < orphans> or mhrd-afk if you have a minute - this one should be a simple q :) |
[16:56] < mhrd-afk> go for it, I'm waiting for a 1.7Gb download to finish :) |
[16:57] < orphans> ok, this code - http://orphans.pastebin.com/m591ec385 |
[16:58] < orphans> if you have TestComponent as a component Mixin.__init__() isn't called, but if you change it to be a subclass of object it calls it |
[16:58] < orphans> is that expected? |
[16:59] < mhrd-afk> so you're saying: if you change line 2 from: |
[16:59] < mhrd-afk> class TestComponent(Axon.Component.component): |
[16:59] < mhrd-afk> to: |
[16:59] < mhrd-afk> class TestComponent(object): |
[16:59] < mhrd-afk> then the behaviour changes as you described? |
[17:00] < orphans> yeah |
[17:00] < Lawouach> orphans,pong |
[17:00] < Lawouach> mhrd-afk, I think there is a bit of micommunication between Jason and Michael |
[17:00] *** mhrd-afk checking stuff before answering ... |
[17:01] < orphans> Lawouach, was just the quick question above - if you have a moment glance over it, otherwise mhrd-afk seems to be doing sterling work :) |
[17:01] < mhrd-afk> orphans: ok, its a method resolution order thing again :-) ... |
[17:02] < orphans> :) |
[17:02] < orphans> I love that mor |
[17:02] < orphans> s/mor/mro |
[17:02] < mhrd-afk> http://docs.python.org/tut/node11.html#SECTION0011510000000000000000 ... |
[17:02] < mhrd-afk> MRO is a depth first search |
[17:02] < mhrd-afk> for """class Test(TestComponent, Mixin):""" it will therefore find init() from TestComponent first ... |
[17:03] < mhrd-afk> TestComponent.init() calls super() ... which presumably (my MRO understanding is a little rusty) passes it onto Axon.Component.component.init() ... |
[17:03] < mhrd-afk> which calls super() again, passing therefore onto Axon.Microprocess.microprocess.init() ... |
[17:04] < mhrd-afk> I've just looked at the source for Axon.Microproces.microprocess and I can't see a call to super() in init() |
[17:04] < mhrd-afk> so presumably it stalls there |
[17:04] < mhrd-afk> so I guess I'm saying: |
[17:04] < orphans> that's what I thought was happening |
[17:04] < mhrd-afk> 1) you might need to swap (TestCompnoent,Mixin) around |
[17:05] < mhrd-afk> 2) you might have found a bug/omission in Axon.Microprocess :-) |
[17:05] < mhrd-afk> I reckon (1) will fix it for now |
[17:05] < mhrd-afk> "that's what I thought was happening" ... cool :-) |
[17:05] < orphans> oh, that is exciting :) |
[17:06] < mhrd-afk> Worth showing to MS- tomorrow/tonight to get his opinion on (2) .... I reckon its a bug, rather than intentional, but you never know :) |
[17:06] < orphans> yup, cool |
[17:07] < orphans> swapping the order makes that work too, which is good |
[17:08] < orphans> cheers mhrd-afk |
[17:08] < mhrd-afk> np |
[18:49] *** Davbo has joined #kamaelia |
[19:00] *** MS- has joined #kamaelia |
[19:00] < MS-> evening |
[19:00] < vmlemon_> Hi MS- |
[19:04] < MS-> I wonder if there's a mechanism to remove the ability to post replies through the web interface on google groups |
[19:04] < MS-> and force people to use email and hence not reply in an antisocial way |
[19:05] < MS-> If someone can't be bothered with basic netiquette they're not going to get an answer and I'm not merging their code |
[20:17] < Davbo> I knew I shouldn't have let my brother install custom firmware on our camera. Now it just takes raw images lol |
[20:18] < Davbo> Massive resolution picture of my drivers license coming up Paypal. |
[20:19] < vmlemon_> Hehe |
[20:19] < vmlemon_> One of the Canon ones? |
[20:19] < Davbo> They asked for it! |
[20:19] < Davbo> Yeah |
[20:20] < Davbo> it's a PowerShot A610 |
[20:20] < vmlemon_> If I remember correctly, there's a way to disable it |
[20:20] < vmlemon_> I don't have one, although read something about locking the SD card |
[20:20] *** Uraeus has joined #kamaelia |
[20:20] < vmlemon_> (Supposedly stops it from loading the custom firmware, but lets you take photos normally, somehow) |
[20:21] *** vmlemon_ grumbles about RPM breaking itself randomly, whenever a package fails to install (so I end up having to reboot to "fix" it) :| |
[20:22] < Davbo> I got it vmlemon_ Thanks |
[20:22] < vmlemon_> It worked? |
[20:22] < Davbo> I made it stop taking 6.3mb pictures yeah |
[20:22] < vmlemon_> Cool |
[20:24] < vmlemon_> Oops, I just managed to nudge the cat whilst it was jumping, and knocked him into my chair and onto the floor |
[20:24] < vmlemon_> o.O |
[20:29] < vmlemon_> Hah, "Join the WiKID IRC Live Chat Channel." |
[20:30] < vmlemon_> (It's hardly "live" whenever I look in it |
[20:30] < vmlemon_> ) |
[20:30] < vmlemon_> There's at most 4 or 5 people, and it's completely silent |
[20:41] < Davbo> hehe |
[20:42] < vmlemon_> (in fact, there's 4 idlers including myself right now) |
[20:53] *** vmlemon_ has joined #kamaelia |
[20:55] < vmlemon_> kamlogbot: dance |
[20:55] Reply: does the macarena |
[21:03] *** robertofaga has joined #kamaelia |
[21:12] < Davbo> Yay! Just used my brothers PayPal instead |
[21:13] < vmlemon_> Hehe |
[21:13] < vmlemon_> I hope he doesn't mind ;) |
[21:14] *** Lawouach has joined #kamaelia |
[21:20] < vmlemon_> PayPal: Your Payment Nemesis ;) |
[21:22] < Davbo> I've spent a good few hours at war with PayPal today. |
[21:24] < vmlemon_> I was going to suggest starting a new account, but you'd need to unregister your cards from the old account, which you can't use |
[21:25] < vmlemon_> :( |
[21:27] < Davbo> I started a new one to use my Google card which caused 1/2 the problems vmlemon_ |
[21:27] < vmlemon_> Aah ouch |
[21:28] < vmlemon_> So you're stuck in the unholy state of PayPal Limbo, now? |
[21:28] < vmlemon_> Or so it seems |
[21:31] < vmlemon_> And you still don't have the Google money? Or has that vanished in the trouble? |
[21:32] < Davbo> nah the Google money is fine |
[21:32] < Davbo> I just managed to break paypal. :-) |
[21:32] < vmlemon_> Yay |
[21:32] *** Davbo is now known as Davbo-afk |