Time and Location
Thursday, 2007-08-09 in #adium-devl
| PDT | MDT | CDT | EDT | CEST |
| 6 PM | 7 PM | 8 PM | 9 PM | 3 AM |
Agenda
- Reducing bus factor
- Trimming the version history
- Code documentation
- SummerOfCode review
- V/V Status
- Elliott's Secret Item
- Augie's One More Thing
Log
18:00:40: <The_Tick> alright, let's begin 18:00:47: <The_Tick> first item, reducing bus factor 18:01:00: <The_Tick> I started this thread on TheDayOfManyEmailsFromTheTick 18:01:22: <The_Tick> we have multiple bus factors, within code and within administration 18:01:45: <The_Tick> we have bits of code nobody dares touch due to code ownership type situations, things like that 18:01:52: <Mac-arena> Which? 18:01:54: <The_Tick> and then evan and I are pretty hefty bus factors 18:02:08: <Mac-arena> The only code I don't touch, I don't touch because I have NFI what it does or how it does it :) 18:02:13: <The_Tick> Mac-arena: I don't know off hand, but think about when adam left 18:02:14: <Mac-arena> (which, really, is most of it) 18:02:15: <sholt> heh 18:02:20: <The_Tick> or sholt even 18:02:41: <Mac-arena> AIH is pretty well-written. I don't think we've had any problem maintaining it. 18:02:45: <The_Tick> I'm sure there is code that nobody knew about for a year after adam left that only he know about 18:02:54: <The_Tick> like intimately knew 18:03:03: <The_Tick> I'm advocating more docs basically 18:03:06: <The_Tick> and unit testing 18:03:10: <Mac-arena> The obvious solution is: Comment, comment, comment! 18:03:19: <Mac-arena> Yeah, and header docs, and unit-testing 18:03:24: <proton> well commenting doesn't magically fix things 18:03:38: <durin42> good comments help a lot 18:03:38: <proton> designing stuff with an actual well-defined API 18:03:42: <proton> that can be unit tested 18:03:44: <proton> that is what helps 18:03:46: <Mac-arena> Matt's been doing really well with the unit testing, actually. It has about 439% more test coverage than the rest of Adium (and remember, 77.3% of statistics are made up). 18:04:03: <The_Tick> proton: ya, that's part of it 18:04:27: <Mac-arena> 1. Document the API. 2. Write tests that assert that the API does what it is documented to do. 3. (for new APIs) Implement the API. 18:05:08: durin42 nods, this is what happens at google 18:05:34: <proton> yep, once you've got the API defined then the only comments really needed in the code (not the headers, the code) is where something isn't obvious why it does something in a certain way 18:06:02: <Mac-arena> I'm actually more verbose than that. I write a lot of comments, so that code can be easily skimmed. 18:06:15: <Mac-arena> Basically, summarize nearly every paragraph of code in English for easy reading. 18:06:21: <Mac-arena> (and sanity-checking) 18:06:44: <Mac-arena> When tracking a bug, you actually read the code, and compare to the stated intent. If you have a mismatch, you have a problem that needs fixing, whether it's your bug or not. 18:07:31: <Mac-arena> . 18:06:46: :Server: eitanko (n=eitan@cpe-72-225-237-159.nyc.res.rr.com) joined #adium-devl 18:07:33: <eitanko> thanks for the reminder, Peter 18:07:40: <Mac-arena> eitanko: You're welcome. Who're you? :) 18:08:10: <proton> you've got to be careful with over-commenting code though Mac-arena. if you get a mismatch between the code and the comment how do you know which one is right? 18:08:22: <Mac-arena> proton: You find out. :) 18:08:24: <eitanko> i'm eitan. im supposedly helping out with vv, but ive been a bit busy with work lately 18:08:46: <Mac-arena> eitanko: Ah. That explains why I don't know you, as I'm not on the VV list. 18:09:08: <Mac-arena> proton: A mismatch is always a problem in at least one, if not both. Far better to have a mismatch than to have an undetected bug. 18:09:12: <eitanko> Mac-arena: was here a lot more often back in June 18:09:27: <Mac-arena> eitanko: I was here a lot more often back in... um... 2006. 18:09:53: <eitanko> Mac-arena: well please to meet you anyways 18:09:59: <Mac-arena> Likewise :) 18:10:03: <durin42> focus people 18:10:04: <Mac-arena> The_Tick: Any other bus factors? 18:10:06: <manung> in my experience you won't want to write too much comments, because then you are too busy maintaining comments, when you should be maintaining the code 18:10:45: <Mac-arena> manung: Maintaining the comments helps you maintain the code, though. 18:11:18: <proton> yeah, over commenting is a very common mistake when people go "Oh no! We have no comments" or "Oh no! We've only got one person who knows about this code" or even "Oh no! My CS course said I should do things this way" 18:11:29: <Mac-arena> As I said, a mismatch is a problem in at least one, if not both. If the comment goes out of date, then of course you should update it, but you should be in the habit of keeping your comments up-to-date anyway. 18:11:33: <manung> Mac-arena: true, but I like to focus on making the code more readable, instead of wrting comments that echo what the code does 18:11:38: <Mac-arena> If the code goes out of date, then what are you doing rewriting comments and not code? 18:11:58: <Mac-arena> manung: I'm not arguing that it should be a substitute for readable code, or that you should comment EVERYTHING. int i = 0; needs no explanation. 18:12:09: <Mac-arena> (Or at least, not simply "Initialize i to 0") 18:12:23: <Mac-arena> Comments explain why, not how. 18:12:38: <eitanko> Mac-arena: strongly agree 18:12:48: <manung> Mac-Arena: yep, just saying there is a balance that needs to be made 18:12:57: <Mac-arena> manung: Of course. BTW, tab completes nicks. 18:13:23: <manung> Mac-arena: cool, :-) 18:13:31: <hal2k> Mac-arena: not in adium :P 18:13:41: <Mac-arena> hal2k: Adium doesn't support IRC. ;) 18:13:56: <Erik006_> mac-arena: really? 18:14:05: <Mac-arena> Erik006_: Not yet. 18:14:08: <Erik006_> afaik it does 18:14:14: <Mac-arena> (Half-working plug-ins notwithstanding) 18:14:29: <hal2k> not enabled by default 18:14:37: <Mac-arena> Not even shipped by default. 18:14:38: <The_Tick> sorry guys 18:14:53: <The_Tick> wife decided she needed to talk to me about something 18:14:59: <The_Tick> anyhow, what're we on? 18:15:01: <jas8522> uh oh ;) 18:15:14: <Erik006_> anyway, another thing: I'm not sure about the rest of you, but I have the tendency to work on specific parts of code i'm familiar with.. does anyone else do this? 18:15:25: <The_Tick> Erik006_: everyone does 18:15:25: <Mac-arena> The_Tick: Comments 18:15:34: <Mac-arena> Erik006_: Familiarity brings commits. 18:15:34: <The_Tick> Erik006_: watch the poisonous people talk 18:15:38: <The_Tick> they address this 18:15:47: <Erik006_> i watched it 18:15:49: <Erik006_> the point being 18:15:50: <The_Tick> it's fine to be more familiar with one bit of code 18:16:00: <The_Tick> but nobody owns any specific code for instance 18:16:05: <proton> Well summary of the bus factor for code: need a definition of the API for various classes. Need appropriate level of commenting. Need Unit Tests of APIs. 18:16:08: <The_Tick> and you should branch out to other bits 18:16:09: <Erik006_> if we encourage people to work on a variety of things, we get a lower bus factor 18:16:20: <Mac-arena> Erik006_: Indeed. 18:16:25: <The_Tick> Erik006_: ya, that's the idea 18:16:28: <Mac-arena> proton: + Developers should work on unfamiliar code. 18:16:53: <durin42> t 18:17:02: <hal2k> wasn't there a unit test SoC project? 18:17:03: <Mac-arena> durin42: u 18:17:03: <durin42> (ignore that) 18:17:09: <Mac-arena> hal2k: Yeah, last year. 18:17:10: <The_Tick> alright, I think we're done 18:17:12: <Mac-arena> Not sure how that went. 18:17:14: <The_Tick> with this bit 18:17:26: <durin42> The_Tick: I'll be back in a minute, I *do* want to be here for trimming history talk 18:17:31: <The_Tick> alright 18:17:37: <durin42> The_Tick: so plz delay that item if I don't make it back right away :) 18:17:40: <edr1084> Mac-arena: it was this year and he got hired by apple so he couldn't do it 18:17:48: <The_Tick> peter, you are up 18:17:49: <Mac-arena> edr1084: Ah, OK 18:17:52: <proton> just remember that unit tests are no good unless there's actually an API to test :) 18:17:54: <Mac-arena> The_Tick: By how much? 18:17:57: <The_Tick> http://trac.adiumx.com/wiki/Doxygenation 18:18:04: <Mac-arena> Oh, OK. 18:18:07: <Mac-arena> Um, please do it? 18:18:10: <The_Tick> third topic 18:18:13: <Mac-arena> :D 18:18:22: <Mac-arena> I still have AIUtilities assigned to me. 18:18:32: <Mac-arena> Guys, go to Doxygenation and assign yourself something 18:18:48: <The_Tick> do we have a style guide for it? 18:18:49: <Mac-arena> Any one or more single classes. 18:18:53: <Mac-arena> The_Tick: Yes 18:19:01: <The_Tick> oh right, now I see it 18:19:12: <Mac-arena> http://trac.adiumx.com/wiki/Doxygenation 18:19:18: <The_Tick> so durin42 wants to run a program against the codebase at some point 18:19:24: <Mac-arena> Feel free to take stuff from AIU, too. I'm not greedy. 18:19:26: <The_Tick> and find out which methods aren't documented 18:19:32: <The_Tick> and have that posted on the website 18:19:46: <Mac-arena> The_Tick: I think the list of documented methods is shorter ;) 18:19:55: <Mac-arena> This actually ties in well with the "work on unfamiliar code" point. 18:19:57: <The_Tick> yea, but the idea is this program is run nightly 18:19:58: <Mac-arena> What you can do is 18:20:10: <Mac-arena> Get out a notepad (paper or bits). 18:20:10: <The_Tick> guess it could do both 18:20:20: <Mac-arena> Start documenting a class in the header using Doxygen comments. 18:20:38: <Mac-arena> Refer to the implementation to determine what a method is supposed to do and expand your explanations. 18:20:57: <Mac-arena> And if you see anything that looks hairy or like a bug or worth profiling (etc.), make a note. 18:21:16: <Mac-arena> And then when you're done documenting, refer to your notes and start cleaning up/fixing up/profiling the code you just documented. 18:21:25: <The_Tick> general rule of thumb from iser was that if you don't understand it in an hour 18:21:29: <The_Tick> it's a candidate for review 18:21:33: <Mac-arena> You could even include a list of tests that would be worth running. 18:21:47: <Mac-arena> The_Tick: Yeah, but writing documentation can really accelerate that process. 18:21:55: <Mac-arena> It forces you to come up with an explanation for the code. 18:21:57: <proton> you've got to remember that not every routine in a class should necessarily be part of the API 18:22:01: <Mac-arena> You create a feedback loop, basically. 18:22:02: <proton> there may be private methods... 18:22:06: <Mac-arena> proton: Right. You work from the header. 18:22:24: <Mac-arena> You don't look in the implementation and document *every* method therein. You start from the header and document the methods declared there. 18:22:25: <hal2k> adium should adapt the new feature for private methods soon 18:22:32: <hal2k> (part of ObjC 2.0) 18:22:43: <Mac-arena> You use the implementation only to expand your documentation in the headers (e.g. "may be slow for unsorted lists"). 18:22:45: <Mac-arena> +, 18:22:53: <proton> hal2k: that depends on your definition of "soon" 18:22:55: <The_Tick> edr1084: you around? 18:23:05: <edr1084> yeah 18:23:10: <The_Tick> kk 18:23:19: <The_Tick> Mac-arena: we done with this topic? 18:23:21: <hal2k> proton: after 10.5 release 18:23:58: <Mac-arena> I think so. I'll just repeat: Everybody with any ability to understand Obj-C (or wanting an excuse to learn it by doing) should go to the Doxygenation page and assign themselves something. 18:24:01: <Mac-arena> http://trac.adiumx.com/wiki/Doxygenation 18:25:11: <The_Tick> edr1084: you're up 18:25:14: <The_Tick> V/V update 18:25:17: <edr1084> kk 18:25:23: <edr1084> so basically two main things 18:25:36: <edr1084> #1 sean issued us a challange 18:26:25: <edr1084> if we can get a demo that will capture from a web cam and display it slightly angled and reflected (a la ichat) he'd sit down and within a week's time give us working jingle in libpurple 18:27:04: durin42 returns 18:27:05: <edr1084> #2 18:27:18: <edr1084> we're looking at taking v/v 10.5+ 18:27:27: <durin42> +1 18:27:39: <Mac-arena> 10.5+, or QT 7.2+? Keeping in mind that QTKit Capture is semi-public since 7.2. 18:27:48: <The_Tick> 10.5 18:27:52: <Mac-arena> Why? 18:27:54: <hal2k> it's not public, but it's available 18:28:01: <Mac-arena> hal2k: Hence, semi-public. 18:28:06: <edr1084> elliott: you still around? 18:28:06: <Mac-arena> All you need is to class-dump it. 18:28:06: <The_Tick> Mac-arena: how long do you think it's going to take us to do V/V? 18:28:09: <elliott> aye 18:28:16: <Mac-arena> The_Tick: No idea, having never done it :) 18:28:30: <edr1084> elliott: care to weigh in? 18:28:33: <edr1084> :) 18:28:33: <The_Tick> my easy estimate is 2 years from when I contacted edr1084 about it 18:28:37: <Mac-arena> Working from class-dumped headers, so it's probably safe to assume that we wouldn't have it until very close to Leopard. 18:28:46: <Mac-arena> s/ so/ 18:28:50: <The_Tick> anyhow, let's let elliott explain 18:28:52: <proton> I don't think you'll have VV done before Leopard's release so I wouldn't be worried if it was Leopard-only 18:29:07: <hal2k> my unscientific guess is a week of work, plus a week for sean to do his 18:29:10: <proton> it's a big enough new feature that people can put up with it being 10.5 only 18:29:24: <elliott> Mac-arena: The vast majority of people on the team have actually -seen- the QTKit capture API. 18:29:40: <elliott> because they have Leopard access. 18:30:07: <elliott> If we class-dump the API, we'd basically have to "forget" all of that knowledge. 18:30:08: <hal2k> elliott: I have access, but not looked at QTKit yet 18:30:15: <Mac-arena> I'm with hal2k. 18:30:23: <elliott> and attempt to do that from scratch. 18:30:34: <elliott> Yeah, but there's no way you can -prove- you haven't looked at it. 18:30:41: <durin42> he's right 18:30:42: <Mac-arena> True. 18:30:44: <durin42> legally it's messy 18:30:46: <hal2k> my understanding is that the C-based QuickTime API is phased out, QTKit is the only one that should be used 18:30:50: <elliott> This is another case of us avoiding NDA mess. 18:31:02: <durin42> we have two choices: work on it, and get it working on leppr and then hold the code until then 18:31:11: <elliott> So in the interest of not stalling V/V development until October, we're pushing it until Leopard. 18:31:12: <durin42> or we wait until leppr 1.0 18:31:13: <hal2k> we don't have to release any source until october 18:31:30: <durin42> s/don't have to/can't/ 18:31:56: <durin42> actually 18:31:59: <durin42> on my 10.4 machine 18:32:09: <durin42> class-dumping the QTKit framework appears to give decent-ish info 18:32:35: <durin42> can we work on a non-in-tree capture app to meet sean's challenge? 18:32:41: <Mac-arena> durin42: Sure. 18:32:43: <elliott> However, Sean's been gracious enough to allow us to keep the source for the demo closed. 18:32:52: <elliott> since it will be using NDA'd API. 18:32:54: <hal2k> good objc APIs don't need a reference 18:33:01: <Mac-arena> elliott: The documentation is NDA'd. 18:33:06: <edr1084> indeed, I specifically asked about that and he was willing to trust us if we tell him it works 18:33:10: <Mac-arena> Anything we get from class-dump is public, which means it's no longer covered. 18:33:28: <The_Tick> anything class-dump is liable to change 18:33:32: <The_Tick> this is not something we should be doing 18:33:34: <durin42> I suggest we use a DVCS (mercurial++) and do this 18:33:35: <The_Tick> we did it with growlmail 18:33:37: <The_Tick> and that's a PITA 18:33:42: <elliott> Mac-arena: There is no distinction if you have access whether you are working off the NDA'd documentation or class-dump docs. 18:33:45: <The_Tick> we're not doing it this way Mac-arena 18:33:55: <durin42> behind closed doors 18:33:57: <durin42> then at the end 18:34:01: <durin42> we can open the source 18:34:08: <Mac-arena> elliott: How isn't there? 18:34:26: <The_Tick> Mac-arena: this is how it's being done 18:34:35: <The_Tick> I personally want 1.4 to be 10.5+ only 18:34:47: <The_Tick> instead of us messing with it again like the 10.3 mess 18:35:12: <elliott> Precisely, if you have access, you can be assumed to be using the docs, regardless of whether we have class-dumped it or not. 18:35:43: <Mac-arena> elliott: Sucky. 18:35:52: <elliott> Thems the breaks. 18:36:01: <edr1084> so here's the other thing 18:36:11: <hal2k> I'd be fine with going closed until leopard release 18:36:13: <edr1084> eitanko: you were one without access to leopard right? 18:36:20: <eitanko> edr1084: yup 18:36:37: <The_Tick> is eitanko critical to this? 18:36:51: <The_Tick> does he need access like yesterday? 18:37:04: <edr1084> I'd still like to be able to give you guys a chance to contribute if we can find something 18:37:31: <elliott> The actual NSOpenGLView stuff for the reflection and whatnot should all be 10.4 kosher. 18:37:40: <eitanko> well leopard is needed for the QTKit stuff. aren't there other things to do besides capture and playback? 18:38:11: <hal2k> OpenGL hasn't changed 18:38:21: <proton> you only the reflection stuff if you're doing a multi-party chat 18:38:26: <hal2k> eitanko: encoding is required 18:38:36: <The_Tick> there's some oss code for the reflection stuff I think 18:38:37: <proton> you just have the video in a window for single party chat (look at iChat) 18:38:41: <hal2k> proton: you can do that for one-on-one, too 18:38:53: <hal2k> The_Tick: doing reflections is a three-liner in opengl 18:38:57: <edr1084> proton: that was part of sean's challenge whether WE need it right away or not 18:39:02: <The_Tick> hal2k: there we go 18:39:02: <hal2k> The_Tick: I can do that 18:39:04: <The_Tick> we'll have OSS 18:40:34: <elliott> So anyhow, I'll be working on the Gstreamer/Quicktime stuff over the next week or two, and time permitted should be able to assemble the things we need for the demo fairly easily. 18:40:51: <The_Tick> being that sean is not nda'd 18:40:58: <The_Tick> we'll have to wait until 10.5 is out 18:41:01: <The_Tick> assumably 18:41:09: <elliott> So, if everyone involved could shoot for in that time frame to at least prototype your stuff. 18:41:18: <elliott> He said we could show him a demo without giving him the source. 18:41:19: <Mac-arena> The_Tick: Only if he wants us to prove it to him with an app. 18:41:36: <elliott> Eric talked to him about our position. 18:41:37: <edr1084> he's cool with something as simple as a screenshot 18:41:37: <zac> meeting! 18:41:40: <elliott> So that's taken care of. 18:41:53: <elliott> I'd like to do a video, but screenshots are fine too. 18:42:06: <elliott> Other people can also be doing research for AIM video related stuff 18:42:07: <The_Tick> how is alan coming with oscar vv? 18:42:13: <elliott> since Jingle will only apply to Jabber. 18:42:20: <durin42> The_Tick: are we sure sean is not nda? 18:42:24: <edr1084> The_Tick: alan is assumed to be MIA 18:42:26: <The_Tick> durin42: find out? 18:42:29: <The_Tick> edr1084: alright 18:42:31: <hal2k> elliott: I'll be gone for two weeks starting on sat, but I can do the opengl-part afterwards 18:42:40: <elliott> hal2k: righto, we talked about that. 18:42:46: <edr1084> The_Tick: he's got some other things going on so I haven't heard a ton from him 18:42:53: <Mac-arena> What is Sean's challenge, exactly? Just to create a $3000 mirror? 18:42:54: <hal2k> just get me a nice picture :) 18:42:55: <The_Tick> edr1084: ask him if he can send you what he has 18:42:58: <The_Tick> documentation and other stuff 18:43:00: <durin42> it seems like GOOG should have a select membership or something 18:43:02: <elliott> Mac-arena: pretty much. 18:43:10: <Mac-arena> Hmmm 18:43:11: <proton> durin42: the Apple NDA doesn't let oyu talk to people about NDA stuff unless they work for the same entity as you you know... 18:43:13: <The_Tick> elliott: btw, iser had code to make a mirror in 18:43:15: <The_Tick> a year ago 18:43:16: <elliott> durin42: It depends on your department, and I doubt he has access. 18:43:26: <The_Tick> was very simple apparently 18:43:40: <elliott> The_Tick: I believe the challenge actually specified we had to do it with GStreamer. 18:43:47: <hal2k> The_Tick: doing a mirror in opengl just means that you have to draw everything twice, the second time flipped 18:43:48: <elliott> because, yes, a mirror is quite trivial to do in OS X. 18:43:50: <durin42> yes, that's what I recall 18:43:57: <The_Tick> kk 18:44:06: <elliott> edr1084: correct me if I'm wrong though. 18:44:27: <edr1084> I'm finding his email now for the exact wording 18:44:28: <hal2k> The_Tick: do multi-texturing with an alpha-channel-only texture, and you got the mac os x-mirror style 18:44:36: <jas8522> I thought I read gstreamer as well 18:44:50: <elliott> because I believe that's what we was going to do 18:44:55: <edr1084> Bold promise: you get a demo using gstreamer that captures webcam 18:44:56: <edr1084> video and displays it tilted at an angle with a slight reflection 18:44:56: <edr1084> beneath it (http://macslow.thepimp.net/?p=127 should help!), and I'll 18:44:56: <hal2k> elliott: the question is, do we want to use coreimage/coreanimation, or just use opengl directly? 18:44:56: <edr1084> get you a working¹ -vv branch of libpurple within a week. 18:44:57: <elliott> was implement gstreamer+jingle 18:45:05: <Mac-arena> hal2k: When I say "mirror" I just mean feeding the video back to a window. 18:45:11: <hal2k> ah ok 18:45:17: <Mac-arena> Thus allowing you to gaze upon your own image with a $3000 lump of electronics. 18:45:26: <elliott> edr1084: aye there it is 18:45:29: <hal2k> Mac-arena: that doesn't matter for gstreamer, since you just have to provide the source plugin 18:45:49: <manung> http://pidgin.im/pipermail/devel/2007-July/002168.html 18:45:51: <elliott> hal2k: well, since it's QTKit, we can double the video back into an NSOpenGLView. 18:45:56: <elliott> without much trouble 18:45:59: <hal2k> Mac-arena: if you're feeding the image to your video sink or a network link is just a matter of setup 18:46:12: <hal2k> elliott: we have to use gstreamer, according to the challenge 18:46:12: <elliott> CI/CA if you can, GL if you can't. 18:46:32: <manung> Bold promise: you get a demo using gstreamer that captures webcam 18:46:32: <manung> video and displays it tilted at an angle with a slight reflection 18:46:32: <manung> beneath it (http://macslow.thepimp.net/?p=127 should help!), and I'll 18:46:32: <manung> get you a working¹ -vv branch of libpurple within a week. 18:46:39: <manung> quoted from his email 18:46:42: <elliott> hal2k: Right to feed it, but we don't have to use it to display it. 18:46:50: <edr1084> manung: already got it ;) 18:46:58: <elliott> That way we can build a nice UI around it on our side. 18:47:07: <elliott> and have it being processed into GStreamer down below. 18:47:20: <hal2k> elliott: we're not trying to do a nice UI, we're trying to fulfill the challenge :) 18:47:20: <elliott> so as far as I'm concerned, the display stuff should be all Cocoa. 18:47:32: <elliott> hal2k: Wouldn't it be trivial either way? 18:47:38: <hal2k> elliott: it should be 18:47:41: <The_Tick> hal2k: thinking of it that way is bla 18:47:48: <The_Tick> why not do it right from the beginning? 18:47:53: <durin42> +1 18:47:53: <elliott> Exactly. 18:48:03: <hal2k> The_Tick: the right way is to feed it to gstreamer for networking 18:48:13: <hal2k> the question is, do we want to use gstreamer for the local mirror? 18:48:21: <elliott> I just went over this, no. :P 18:48:25: <The_Tick> hal2k: yes 18:48:38: <elliott> The_Tick: *boggle* why? 18:48:45: <The_Tick> to fullfill the requirements... 18:48:53: <The_Tick> ok, point is 18:48:57: <The_Tick> whatever his challenge is 18:49:00: <The_Tick> that's what's happening 18:49:06: <durin42> we need gstreamer anyway 18:49:06: <The_Tick> right? 18:49:08: <elliott> But he doesn't care about the mirror, he cares that he can get the video on screen across the pipe. 18:49:12: <durin42> so we might as well do it right 18:49:26: <durin42> the mirror needs to work using gstreamer 18:49:39: <The_Tick> ok, then there's nothing to argue about 18:49:41: <durin42> because he's going to use gstreamer to serialize/deserialize to/from the network 18:49:58: <elliott> but he's not serializing/deserializing the mirror 18:50:11: <elliott> he's being fed the data directly from quicktime 18:50:26: <elliott> and quicktime+(insert apple technology here) is providing the mirror. 18:50:41: <Mac-arena> The challenge is not simply "create a mirror" 18:50:53: <Mac-arena> The challenge is "implement video that can be put into Adium" 18:50:56: <Mac-arena> The mirror is simply a test bed. 18:51:00: <elliott> correct 18:51:05: <elliott> it reflects the data we are feeding him 18:51:07: <elliott> that's all. 18:51:08: <edr1084> doesn't matter WHAT the image is, as long as it captures and displays 18:51:16: The_Tick runs off 18:51:29: <Mac-arena> The_Tick: What items remain? 18:51:30: <elliott> and more importantly, can be delivered via GStreamer to Sean. 18:52:01: <elliott> Anyhow. 18:52:08: <elliott> I added this to the agenda last minute. 18:52:12: <hal2k> ok, so we need a mirror via gstreamer now, but we don't need it in the final product 18:52:23: <elliott> I don't think we need it either time. 18:52:26: <elliott> but I'll ask Sean. 18:52:43: <edr1084> elliott: about a mirror? 18:52:52: <hal2k> gstreamer-based mirror has the pro of displaying the image just as it is sent (if configured properly) 18:53:01: <elliott> either way should do that. 18:53:25: <elliott> if configured properly. 18:53:32: <hal2k> elliott: no, the image captured from the camera is less compressed than the one sent via the network 18:53:38: <hal2k> gstreamer does the compression 18:53:47: <Mac-arena> They *both* do compression. ;) 18:53:49: <elliott> edr1084: Yeah, about whether he requires the mirror in gst or doesn't care. 18:54:00: <edr1084> nothing was said about a mirror 18:54:08: <edr1084> he wants capture and display 18:54:15: <elliott> edr1084: display == mirror 18:54:24: <Mac-arena> As I said, the mirror is just a test bed. 18:54:27: <Mac-arena> It proves that it works. 18:54:43: <Mac-arena> But we shouldn't design for the mirror; we should design for Adium. 18:54:52: <hal2k> yes 18:55:00: <hal2k> so it has to go through gstreamer 18:55:07: <elliott> which is why I contend that we should be doing the mirror Adium-side. 18:55:09: <hal2k> implement a source via quicktime 18:55:11: <elliott> ................ 18:55:12: <Mac-arena> hal2k: Well, for purple, yes. 18:55:20: <elliott> hal2k: I think you're missing something here. 18:55:26: <Mac-arena> Let's not assume the eternal presence of libpurple. :) 18:55:49: <hal2k> Mac-arena: true, but other plugins should probably use gstreamer, too 18:55:57: <hal2k> elliott: what am I missing? 18:55:59: <Mac-arena> Unless they're Mac-specific, or at least GNUSTEP. 18:56:09: <Mac-arena> Or at least not GTK+. 18:56:28: <elliott> Our API will use QTKit to capture the video and turn it into GST compatible data to be sent. QTKit is ALSO going to provide a copy of the data to an NSView to be displayed and mirrored. 18:56:35: <hal2k> gstreamer does nice things on its own 18:56:43: :Server: The_Tick_ (n=tick@adsl-70-142-154-90.dsl.hstntx.sbcglobal.net) joined #adium-devl 18:56:56: <hal2k> elliott: yes, but the second part isn't required for the testbed we want to implement 18:57:04: :Server: The_Tick has signed off (Read error: 104 (Connection reset by peer)) 18:57:08: <hal2k> elliott: since that wouldn't prove anything gstreamer-side 18:57:08: <elliott> I'm telling you it is right now. 18:57:34: <elliott> Having gstreamer show the video doesn't prove anything either. 18:57:49: <elliott> aside from us knowing how to compile gstreamer and use the osxvideo plugin. 18:57:56: <hal2k> it proves that we can feed video to gstreamer 18:58:17: <hal2k> since we assume that gstreamer does what it advertizes, it can send that video to some network peer, too 18:58:27: <elliott> Visually, the two are [should be] indistinguishable. 18:58:44: <Mac-arena> Suppose we had a radio button? 18:58:50: <Mac-arena> ( ) Direct QuickTime feed 18:58:50: <The_Tick_> no 18:58:54: <Mac-arena> ( ) GStreamer feed 18:59:00: <hal2k> Mac-arena: what for? 18:59:02: :Server: The_Tick_ is now known as The_Tick 18:59:05: <Mac-arena> hal2k: Testing both. 18:59:11: <The_Tick> guys 18:59:11: <elliott> The important part is we aren't going to show off the demo without having the conversion code in place to convert to GST and send it over the wire. 18:59:15: <The_Tick> look, what's the goal? 18:59:21: <hal2k> Mac-arena: if the gstreamer-based one works, the other one should work fine anyways 18:59:22: <Mac-arena> The QT code regardless of where it's going, and the GStreamer code as well. 18:59:50: durin42 suggests this conversation be taken out of band to the -vv list 18:59:52: <Mac-arena> hal2k: Not if we intend to keep it independent of GStreamer, so that another service plug-in could be dropped in in its place. 18:59:58: <The_Tick> fguys 18:59:58: <durin42> I have things I want to discuss 19:00:00: <The_Tick> guys 19:00:01: <The_Tick> stop 19:00:06: <The_Tick> what's the goal? 19:00:10: <durin42> we've spun for 30 minutes on this at least 19:00:13: <The_Tick> durin42: 5 mins, tops 19:00:16: <The_Tick> it's important 19:00:22: <durin42> kk 19:00:24: <elliott> To create the demo Sean wants. 19:00:31: <The_Tick> what is required for that 19:00:56: <The_Tick> specifically, doing it right so we don't redo it later either 19:01:00: <hal2k> getting a video feed to gstreamer and displaying it using some opengl-magic 19:01:05: <elliott> No. 19:01:30: <elliott> Capturing video from QTKit, displaying it on screen, and having code that can convert this to travel the wire via GStreamer. 19:01:34: <Mac-arena> Getting a video feed, showing it so we can prove we are handling the feed correctly, and sending it through GStreamer (e.g., over the wire). Not necessarily in that roder. 19:01:36: <Mac-arena> order 19:01:43: <Mac-arena> (and yes, that's basically the same as what elliott said) 19:01:46: <The_Tick> which is less code? 19:01:58: <hal2k> The_Tick: doesn't matter probably 19:02:01: <elliott> Doesn't matter. 19:02:09: <The_Tick> maintainability = less code 19:02:11: <hal2k> elliott: how are you going to test the video of the feed? 19:02:20: <The_Tick> which is better for the zealotry of proton's api magiks 19:02:39: <The_Tick> which would make him happier 19:02:47: <elliott> hal2k: Probably write tests that convert GstBuffers back into Quicktime Video. 19:03:03: <The_Tick> that's the question, off to the -vv list with you guys :) 19:03:05: <hal2k> elliott: why not display the gstbuffer directly via opengl? 19:03:06: <Mac-arena> Can a GstBuffer be layered directly on a GL pixel buffer? 19:03:13: <The_Tick> edr1084: are you recruiting people at this point? 19:03:19: <elliott> Mac-arena: I don't believe so. 19:03:19: <hal2k> Mac-arena: you have to do a copy I think 19:03:27: <hal2k> Mac-arena: but there's code for that in gstreamer 19:03:35: <edr1084> The_Tick: I'm not turing people away if they can/want to contribute 19:03:36: <elliott> Anyhow, we'll discuss in -VV. 19:03:43: <elliott> I need to go, but I wanted to show this first. 19:03:44: <The_Tick> ya, please 19:03:47: <Mac-arena> edr1084: Subscribe me please? 19:03:48: <elliott> http://myskitch.com/elliott/getinfo3-20070808-210643/ 19:03:57: <edr1084> Mac-arena: I sent you an email with the link... 19:04:01: <The_Tick> yay 19:04:03: <elliott> Prototyped new Get Info panel. 19:04:17: The_Tick wants finder style get info 19:04:17: <The_Tick> anyhow 19:04:21: <Mac-arena> elliott: YUM! 19:04:21: <The_Tick> durin42: you're up 19:04:23: Mac-arena likey 19:04:25: <durin42> ok 19:04:28: <elliott> Disclosure triangles = gross. 19:04:30: <elliott> ok bbiab 19:04:35: <durin42> so, ofri brought up truncating the version history on list 19:04:43: <durin42> I think it's a bad idea 19:04:46: <durin42> for a number of reasons 19:04:46: The_Tick too 19:04:53: <Mac-arena> durin42: Subject? 19:05:05: <hal2k> the problem he's trying to fix is that the version history is geting too large to handle 19:05:13: <durin42> Mac-arena: huh? 19:05:20: <Mac-arena> durin42: Of the email 19:05:26: <durin42> oh, ya 19:05:32: <Mac-arena> Subject: [Adium-devl] Automated changelog generation 19:05:35: <Mac-arena> Right? 19:05:39: <durin42> neg 19:05:49: <Mac-arena> Ah 19:05:50: <durin42> Subject: Version History (was Re: [Adium-devl] Community versus ego?) 19:06:10: <Mac-arena> His post: Message-Id: <C3383E0C-7C04-4D2E-962D-8D6C9D5CBF72@gmail.com> 19:06:10: <The_Tick> is this a legitimate problem? 19:06:16: <durin42> His overall point was that truncating means it'd be easier to use DVCS tools 19:06:19: <proton> http://adiumx.com/pipermail/adium-devl_adiumx.com/2007-August/003304.html 19:06:20: <durin42> which is crap IMO 19:06:33: <durin42> because all DVCS importers I've seen have a starting revision import config 19:06:38: <durin42> so if git-svn lacks that 19:06:41: <Mac-arena> !proton++ 19:06:49: <durin42> we should send a crack team of code-ninjas to fix git-svn 19:06:55: <durin42> not segment our repo 19:07:06: <Mac-arena> durin42: That may be partly what he's suggesting. Switch to $DVCS, and only import the last n revisions. 19:07:19: <durin42> Mac-arena: he was open to leaving it SVN on the server I think 19:07:27: <Mac-arena> Yeah 19:07:31: <Mac-arena> I think I was conflating his with yours 19:07:33: <durin42> in essence though, I think that SVN is a good thing for us right now 19:07:36: <The_Tick> we're not keeping svn up if we switch to another vcs 19:07:45: <durin42> esp. since 10.5 will be including svn 19:07:45: <Mac-arena> SVN's really good for GSoC, as I've stated 19:07:53: <durin42> (and svk) 19:08:03: hal2k doesn't understand the vcs frenzy currently going on 19:08:11: <hal2k> it seems like every project is using another vcs 19:08:11: <The_Tick> hal2k: linus talk 19:08:15: <durin42> also, git scares the willies out of me archiecturally at the moment 19:08:30: <The_Tick> don't bring up git in #macsb, heh 19:08:34: <The_Tick> or svn 19:08:41: <hal2k> darcs and git were the most easy ones to use for me, mtn was the most complicated one 19:08:53: <durin42> fundamentally, if we wanted to go distributed 19:08:59: <durin42> there are good ways to maintain svn as a mainline 19:09:13: <durin42> and I think that we should let people use DVCS if they want for offline commit and whatever 19:09:22: <durin42> but no truncation of server history 19:09:33: <durin42> so that's my $.02 USD 19:09:39: hal2k doesn't seen the point in going distributed 19:09:52: <The_Tick> since this topic isn't about distributed 19:09:55: <The_Tick> and more about truncated 19:10:01: <durin42> any other comments? 19:10:02: <The_Tick> where are we actually choking? 19:10:06: <proton> the only thing svn needs is a "local commit" 19:10:18: <proton> then DVCS can go die in a hole :) 19:10:32: <The_Tick> if it's a problem with the repo 19:10:35: <The_Tick> let's fix the repo 19:10:40: <durin42> there's no real problem with the repo 19:10:40: <hal2k> proton: wouldn't that essentially be a dvcs then? 19:10:42: <The_Tick> I have next week off 19:10:49: <The_Tick> and can do things then 19:11:22: <proton> hal2k: not really, you don't need all that merging rubbish that people go on with 19:11:26: <durin42> some revision numbers are borked in commit messages 19:11:27: <hal2k> The_Tick: oh btw, could you ask thomas then if he hasn't forgotten about the offer for the Adium SoC students? 19:11:30: <durin42> it'd be a nice-to fix 19:11:36: <durin42> and I think we could probably figure out a rev range 19:11:38: <The_Tick> hal2k: I sent him a todo list 19:11:40: <durin42> they're off by 3 or something 19:11:43: <The_Tick> he's kinda gone mia for a few days 19:11:53: <Mac-arena> We've had commits go AWOL before. I blame that more on the tools than the repo, though. 19:11:58: <hal2k> The_Tick: well, he promised that about a month ago... 19:12:07: <Mac-arena> "Dump and load eats revisions" != "Message history is too long" 19:12:08: <Erik006_> hal2k: afaik he hasn't .. he set me up 19:12:14: <Mac-arena> s/Message/Commit/ 19:12:21: <The_Tick> hal2k: yes, I know 19:12:23: <hal2k> The_Tick: I'm not in a hurry, I just hope he hasn't forget 19:12:27: <The_Tick> indeed 19:12:30: <hal2k> forgot* 19:12:44: <The_Tick> hal2k: it's on my list for next week 19:12:49: <The_Tick> remind me though 19:12:51: <durin42> we lost revisions? 19:12:52: <The_Tick> do you have my aim? 19:12:54: <hal2k> Erik006_: did you ask for hosting or xen? 19:13:00: <hal2k> The_Tick: nope 19:13:01: <Erik006_> hosting 19:13:02: <durin42> if we did, we should bug the svn guys 19:13:11: <hal2k> Erik006_: I asked for xen, since I already got hosting 19:13:31: <The_Tick> hal2k: you really need xen over hosting for what you're doing 19:13:32: <Mac-arena> durin42: Yeah, I've seen changeset links in Trac that go to some other revision. 19:13:56: <hal2k> The_Tick: yes, for running my xmpp server without having the nr guys killing my server once per week 19:13:56: <durin42> Mac-arena: add four to the rev number 19:13:58: <durin42> then it'll be right 19:14:04: <The_Tick> hal2k: cron :P 19:14:05: <Mac-arena> durin42: Why? :) 19:14:14: <hal2k> The_Tick: I don't have cron there right now 19:14:19: <durin42> Mac-arena: because that's what is wrong 19:14:22: <The_Tick> no, that's what they are probably doing 19:14:39: <Mac-arena> durin42: What is wrong is that four revisions either spontaneously appeared or got eaten. 19:14:49: <The_Tick> I think the meeting is done 19:14:56: <durin42> Mac-arena: IIRC that came from some weird CVS importer thing 19:14:57: <durin42> The_Tick: not quite 19:14:58: <The_Tick> if anyone here is waiting around :) 19:14:58: <hal2k> The_Tick: no, it's not on a regular basis. sometimes the openfire server goes crazy and takes 100% CPU. that's when they kill it 19:15:00: <durin42> zavislak: go 19:15:07: <durin42> The_Tick: /me has another topic 19:15:10: <durin42> reload the wiki 19:15:18: <zavislak> my turn? 19:15:23: <durin42> I just decreed it so 19:15:25: <The_Tick> durin42: is this about legal stuff? 19:15:26: <The_Tick> wait 19:15:33: <durin42> ok 19:15:36: <The_Tick> durin42: is it about legal stuff? 19:15:36: <durin42> The_Tick: speak up 19:15:44: <durin42> should we do a mail list thread/ 19:15:50: <durin42> (again, the last one died) 19:15:52: <The_Tick> we should address brian's concerns 19:15:57: <The_Tick> the email is still there 19:15:59: <The_Tick> waiting 19:16:02: <durin42> *sigh* 19:16:09: <The_Tick> I told you this a while ago 19:16:18: <The_Tick> if we're going to do adium separate, that's fine 19:16:27: <The_Tick> I'm almost happier to just go that route 19:16:36: <durin42> alright 19:16:42: <The_Tick> but sharing testing boxes is promising 19:16:46: <durin42> yeah 19:16:48: <The_Tick> anyhow, email first 19:16:52: <The_Tick> let's get that out of the way 19:16:53: <durin42> fine then :P 19:16:55: <The_Tick> thanks 19:16:58: <durin42> I was hoping to deal with this on irc 19:17:02: <The_Tick> I know 19:17:04: <durin42> can you send the email you mean to me? 19:17:12: <The_Tick> but evan and brian are not on irc now 19:17:16: <The_Tick> nor are the other project people 19:17:42: <The_Tick> let me find it 19:18:21: <The_Tick> gah, I don't know the subject name 19:18:36: <durin42> Subject: Re: Mac Open Source Foundation 19:18:38: <The_Tick> ah, found it 19:18:41: <durin42> I think 19:18:48: <durin42> forward me the specific one you mean pls 19:19:07: <The_Tick> steve asked a question about outside of the US devs 19:19:09: <durin42> alright, /me has phone call 19:19:15: <The_Tick> his email from july 2nd 19:19:31: <The_Tick> I don't think he answered the questions 19:19:38: <durin42> can you compile a list of questions you didn't feel were answered please? 19:19:44: <The_Tick> yea 19:19:47: <durin42> thanks 19:19:50: <The_Tick> I'll have it out soonish 19:19:58: The_Tick adds to todo.txt 19:19:58: durin42 hugs The_Tick 19:20:10: <The_Tick> I want it done, but I want it done right 19:20:18: <The_Tick> public forum isn't right yet :) 19:20:18: durin42 nods 19:20:39: <durin42> I'm gonna go handle the phone now, later :) 19:21:47: <The_Tick> zavislak: sorry :) 19:21:56: <zavislak> The_Tick: np :) 19:22:18: <The_Tick> top of my todo list though :D 19:22:31: Mac-arena scrolls up, having just stirred M&C 19:23:17: <Mac-arena> Ah, nothing I have to respond to 19:24:04: <The_Tick> I have one final item 19:24:07: <The_Tick> proton: your msn library 19:24:19: <The_Tick> I'd like to start getting you some help on it 19:24:27: <The_Tick> is it that far along? 19:25:15: <proton> well it hasn't changed for quite a while now, it's got a few too many magic strings and stuff in it still 19:25:51: <The_Tick> can you get it into a repo where I can have someone work with you on it? 19:25:57: <The_Tick> a private one or whatever? 19:26:08: <The_Tick> until you're ready for a checkin 19:26:49: <proton> i probably need to get it a bit further on first, get it to the stage where it can send/receive messages at least :) 19:26:57: <proton> at the moment it can login but not a whole lot more 19:27:06: <The_Tick> how long will that take? 19:27:14: <The_Tick> roughly : 19:27:16: <The_Tick> :) 19:28:12: <edr1084> we looking to move away from libpurple for msn? 19:28:26: <The_Tick> proton has this snazzy idea 19:28:33: <The_Tick> he can explain it better than I can 19:28:46: <Mac-arena> What was Elliott's Secret Item? 19:28:47: <The_Tick> but if it succeeds it'd be an option 19:28:56: <The_Tick> Mac-arena: nothing atm 19:29:19: <proton> basically i've just been playing with ways to build an instant messaging library in Obj-C that should be extensible for multiple protocols with a similar API etc 19:29:29: <proton> playing with an MSNP15 implementation at the moment 19:29:29: <edr1084> Mac-arena: it was the info pane rewrite he's working on 19:29:35: <Mac-arena> Ah 19:29:43: Mac-arena approves 19:29:47: <proton> written basically all in Obj-C :) 19:30:06: :Server: Catfish_Man (n=david@c-67-189-28-219.hsd1.or.comcast.net) joined #adium-devl 19:30:33: <jas8522> so like libpurple in Obj-C 19:30:39: <Catfish_Man> sup folks 19:30:42: <The_Tick> hey Catfish_Man 19:30:42: <Mac-arena> Catfish_Man: You arrived just in time to miss almost all of the meeting ;) 19:30:53: <proton> jas8522: but it's designed to be a protocol library, nothing more 19:30:54: <Catfish_Man> damn, I'll have to wait a bit longer next time 19:31:01: <proton> libpurple kind of dictates how the UI must work 19:31:03: <The_Tick> indeed 19:31:06: <proton> in at least some areas 19:31:07: <jas8522> ahhh 19:31:19: <The_Tick> jas8522: which makes some sense forit 19:31:26: <The_Tick> since it just finally split after 10+ years 19:31:45: <jas8522> right 19:31:58: <hal2k> proton: the problem is, either you have per-protocol implementations of the UI in the app, or the library dictates the UI 19:32:17: <jas8522> interesting - especially that you chose MSN to start with. There will be alot of demand for that 19:32:18: <hal2k> proton: adium currently has both, libpurple dictating the API, and having per-protocol implementations 19:32:18: <Mac-arena> I should rip a clip of Mitch Hedberg saying "Meeting *Adjourned*!" from Mitch All Together, so we can CTCP SOUND it at the end of every meeting. 19:32:23: <Mac-arena> Especially when Evan's in attendance. 19:32:54: <proton> hal2k: the application will have to implement things for the various parts that are protocol specific if it wants to support them 19:32:56: <elliott> Any additional thoughts on the info pane? 19:33:02: <Catfish_Man> elliott: pixplz? I missed it 19:33:08: <Mac-arena> 19:03:48: <elliott> http://myskitch.com/elliott/getinfo3-20070808-210643/ 19:33:08: <elliott> http://myskitch.com/elliott/getinfo3-20070808-210643/ 19:33:09: <hal2k> proton: that sounds fine then 19:33:10: :Server: eitanko has signed off () 19:33:21: <hal2k> proton: I hope you don't limit the API to the things MSN does :) 19:33:24: <proton> but because Obj-C is nice and dynamic we can simply check if the application implements the required methods for some feature 19:33:27: <hal2k> proton: just like Adium is limited to AIM 19:33:36: <Mac-arena> The big application icon looks a little too big, but other'n that, the whole thing is very yummy. 19:33:49: <Mac-arena> (by "too big" I mean it's crowded by the box) 19:33:58: <Catfish_Man> elliott: not a huge fan of the sunken-style NSBox, and it'd be cool to use a real NSToolbar for icon/small icon/text mode niceness 19:34:01: <Catfish_Man> otherwise looks neat :) 19:34:04: <hal2k> proton: yes, objc should be MUCH nicer for the whole thing 19:34:07: <proton> the API should be generic enough to handle basically any protocol, only reason I'm doing MSN is it's the one that seems to be most neglected in features and I understand the protocol for it in most areas :) 19:34:20: <hal2k> proton: libpurple basically re-invents lots of the stuff cocoa already does 19:34:20: <elliott> Catfish_Man: The sunken box is temporary. 19:34:23: <Catfish_Man> ok 19:34:40: <elliott> Is there an NSToolbar for the small inspector-styled items? 19:34:46: <elliott> on 10.4 19:34:49: <Catfish_Man> no 19:34:57: <elliott> shrug 19:35:00: <elliott> it's modeled after the iWork inspectors. 19:35:05: <hal2k> proton: the most critical point for implementing XMPP in such a library is to support multiple clients connected to a single account 19:35:15: <hal2k> proton: all the other protocols don't support that 19:35:18: <elliott> just larger buttons since there are less items. 19:35:34: <Catfish_Man> elliott: k 19:35:40: <proton> i've got some cool tricks like handling of incoming messages on MSN parses the type of packet and does a dynamic lookup for a class that implements it :) 19:35:51: <elliott> Catfish_Man: Unless you can convince me that someone really needs to customize their Get Info window. :P 19:35:52: <proton> hal2k: well AIM lets you have multiple connections to a single account too :) 19:35:57: <Catfish_Man> elliott: point 19:36:31: <hal2k> proton: yes, but you can't talk to them separately 19:37:08: <proton> hal2k: anyway, because it's Obj-C there's no reason you can't have a subclass of the contacts to support resources for XMPP :) 19:37:26: <elliott> Catfish_Man: The box section will be identical to what we current have there, just with the slight change of the status being text and the smaller icon to the right being the service icon 19:37:37: <hal2k> proton: I don't know if you have to take care of that in the basic API, you just have to be aware of that possibility 19:37:47: <elliott> Oh, and the Contact Name will be a hovering popup for metas 19:38:06: <hal2k> proton: for example, adium is written in objc, but there's no way to implement that without rewriting the contact controller 19:38:28: <Mac-arena> Oh, I have what could be another list item (whenever you guys are ready) 19:38:52: <proton> hal2k: yeah, well that'll be something we'll keep in mind as it's written :) 19:39:00: <The_Tick> night guys 19:39:04: <Mac-arena> The_Tick: Hold 19:39:09: <Mac-arena> You're involved in my list item ;) 19:39:11: <The_Tick> hot food 19:39:15: <Mac-arena> I have hot food too :D 19:39:21: <Mac-arena> Adium-Lite. Status? 19:39:23: <The_Tick> WIFE+HOT FOOD 19:39:26: <The_Tick> Mac-arena: dead 19:39:29: <Mac-arena> Foo. 19:39:32: <The_Tick> until I know more about cocoa 19:39:35: <The_Tick> and svn 19:39:42: <The_Tick> and it's also waiting on durin42 19:39:48: The_Tick goes to eat 19:40:11: <edr1084> does this mean we go on to SoC? 19:40:21: <Mac-arena> May as well. CFM's here. 19:40:29: <Catfish_Man> ok. SoC it is 19:40:32: <Mac-arena> Although somebody said we should just do it on devl list at this point. 19:40:35: <Catfish_Man> we're getting pretty close to out of time 19:40:35: <Mac-arena> Do we want to do it on IRC? 19:40:46: <Catfish_Man> so I'm of the opinion that students should start wrapping things up 19:40:47: Mac-arena borrows the chairman hat from The_Tick since he's off eating dinner not at the computer 19:41:22: :Server: The_Tick has signed off (Read error: 104 (Connection reset by peer)) 19:41:56: <Mac-arena> Catfish_Man: Yeah? 19:42:00: <Catfish_Man> basically, unless anyone objects, I think we/I should email devl saying essentially 'finish whatever feature you're on, then cleanup & testing' 19:42:04: :Server: The_Tick (n=tick@growl/the-tick) joined #adium-devl 19:42:20: <Mac-arena> Or at least get status reports 19:42:20: hal2k has been in the cleanup&testing phase for a while now 19:42:27: <proton> sounds reasonable 19:42:42: <Mac-arena> "Do you have any features left to do? OK, you'll do these and these others that you don't have time for [if any] get cut" 19:42:51: <Mac-arena> (less brusquely, but you get the idea) 19:43:13: <Catfish_Man> we're 11 days out from "upload to google" on the timeline, 22 days from final eval 19:43:15: :Server: The_Tick_ (n=tick@adsl-70-142-154-90.dsl.hstntx.sbcglobal.net) joined #adium-devl 19:43:16: :Server: The_Tick has signed off (Connection reset by peer) 19:43:20: <Mac-arena> That close, huh? 19:43:32: <Catfish_Man> naturally I don't really care about the first of those, as long as it compiles ;) 19:43:40: <hal2k> Catfish_Man: do we really have to upload to google? 19:43:47: <Catfish_Man> hal2k: istr that was canceled 19:43:48: <Mac-arena> I thought they said no upload to Google. 19:43:51: <hal2k> Catfish_Man: I'm not sure how I could upload anything 19:43:56: <Catfish_Man> yeah, exactly 19:44:02: <Mac-arena> hal2k: Write a .url file with the svn: URL ;) 19:44:06: <hal2k> heh 19:44:29: <hal2k> afaik it's just a form durin42 is going to write up to fill out again 19:44:35: <hal2k> durin42: ping 19:45:04: <jas8522> could still be on the phone 19:45:13: <jas8522> this long... either his girlfriend or his mother :| 19:45:15: <hal2k> probably a woman on the other end 19:45:19: <jas8522> hahaha 19:45:24: <elliott> no doubt 19:45:34: <hal2k> :) 19:45:46: <edr1084> you mean his fiance 19:45:53: <Mac-arena> Fiance would be male. 19:45:57: <Mac-arena> Perhaps you know something we don't? 19:45:59: <edr1084> umm... 19:46:02: <jas8522> wtf 19:46:11: <edr1084> since when is that male? 19:46:13: <Catfish_Man> Mac-arena: getting back into pedant practice, I see 19:46:17: <Catfish_Man> fiancee is what you want 19:46:21: <Mac-arena> Fiance = who she's marrying. Fiancee = who he's marrying. 19:46:21: <jas8522> really? 19:46:27: <elliott> hahaha 19:46:28: <jas8522> I had no idea 19:46:28: <elliott> oh Mac-arena 19:46:33: <Mac-arena> Catfish_Man: Indeed ;D 19:46:38: <jas8522> :P 19:47:15: <Catfish_Man> mmmm " In a canvas test page, which I broke off from the Safari 19:47:15: <Catfish_Man> pageout test, I saw an RPRVT reduction of ~10MB." -- dave hyatt, in a commit log just now 19:47:22: <Mac-arena> Yum. 19:47:42: <Mac-arena> So anyway. GSoC Mentors: Get your students to wrap it up. And you'll be emailing the list with the same message, CFM? 19:47:49: <Catfish_Man> yup 19:48:14: <Catfish_Man> oh, and for those I haven't spoken to, I'm definitely interested in feedback on my contact controller email 19:48:27: <elliott> As an aside, do we have targets for 1.1, 1.2, and 1.3? 19:48:29: <proton> Catfish_Man: that was ggaren 19:48:40: <proton> reviewed by hyatt :) 19:48:40: <Catfish_Man> oh, so it was 19:48:49: <hal2k> Catfish_Man: no objections from me, I guess it's just the result of last year's discussion anyways :) 19:48:49: <Catfish_Man> I always see the reviewed-by first 19:49:01: <Mac-arena> elliott: A red bull's-eye for 1.2, a paper dummy for 1.2, and a clay pigeon for 1.3. 19:49:12: <elliott> hah 19:49:13: <Catfish_Man> Mac-arena: oh? two targets for 1.2? 19:49:17: <elliott> Do we have target dates? 19:49:19: <Mac-arena> s/1\.2/1.1/ 19:49:42: <Catfish_Man> tab length and swedish are the last two tickets on 1.1 19:49:46: <Mac-arena> elliott: Not on roadmap. 19:50:01: <Catfish_Man> I have a patch to PSMTabs ready that *may* fix my issues 19:50:20: <proton> Catfish_Man: re naming: I'd strongly suggest you don't use "AIContact" for anything 19:50:21: <Mac-arena> Ping The_Tick about it and enter it into the record for this meeting after he responds. 19:50:30: <Catfish_Man> proton: k 19:50:35: <proton> it's too ambiguous and is much harder to understand the code :) 19:50:43: <Mac-arena> proton: What's ambiguous about it? 19:50:51: <Catfish_Man> as opposed to AIListContact? 19:50:52: <Mac-arena> Aside from connotations from existing code 19:50:53: <hal2k> proton: btw, keep me updated on your project :) 19:51:40: <proton> because just reading "AIContact" in code will be hard to work out if you mean a contact the user sees or a contact from a service or any of a number of things that might be contacts 19:52:15: <proton> AIPerson for a meta contact sounds better 19:52:26: <proton> AIServiceContact for AIListContact perhaps 19:52:29: <Mac-arena> Risk with AIPerson: Assumption that it inherits from ABPerson. 19:52:34: <hal2k> proton: oh btw, how does you project differ from CK? 19:52:37: <Mac-arena> Not to mention the fact that they look very similar at a quick read. 19:52:46: <proton> yeah, AIPerson I'm not 100% happy on, but it's better than AIContact :) 19:52:53: <Mac-arena> I'm not convinced. 19:53:06: <proton> hal2k: well it's just a library, not a complete framework with daemon type thing 19:53:16: <proton> it could be built into something like that in the future possibly 19:53:21: <Catfish_Man> Mac-arena: what if we made it inherit from ABPerson? ;) 19:53:24: Catfish_Man runs 19:53:27: <Mac-arena> As long as we document what an AIContact is, and what an AIContactUsername (or whatever) is, I don't foresee a problem. 19:53:30: <Mac-arena> Catfish_Man: Run! RUN FAST! 19:53:59: <gbooker> proton: adopting fire's naming scheme? 19:54:01: <proton> AIMetaContact and AIServiceContact possibly? 19:54:11: <proton> gbooker: yeah, i liked it better :) 19:54:14: <Mac-arena> Eh. 19:54:16: <gbooker> so do I 19:54:19: <Mac-arena> Metacontact sounds weird. 19:54:22: <gbooker> no confusions on what things mean 19:54:28: <Mac-arena> Perhaps AIContactContainer? 19:54:33: <Catfish_Man> no 19:54:40: <Mac-arena> gbooker: What's Fire's naming scheme? 19:54:43: <Catfish_Man> because AIContainingObject is still around 19:54:57: <gbooker> a person is a collection of beddies 19:55:09: <gbooker> buddy is the service level "contact" 19:55:09: <Mac-arena> Catfish_Man: And an ex-AIMetaContact would still be an AIContainingObject, right? 19:55:14: <gbooker> and person is the meta-contact 19:55:17: <Catfish_Man> Mac-arena: indeed 19:55:18: <Mac-arena> Oh, I see. You expect that it would be confused with that protocol. 19:55:35: <Mac-arena> Such that people would expect groups to be AIContactContainers. 19:55:38: <Catfish_Man> AIContactContainer <AIContainingObject> is a little weird 19:55:41: <Mac-arena> That too. 19:56:15: <Mac-arena> AISomebodyElse and AISomebodyElsesUsername? ;) 19:56:51: <Mac-arena> (Of course, I'm on my own CL several times...) 19:57:26: <proton> anyway, the point is that "contact" is a very ambiguous term in an IM application 19:57:33: <proton> so using it as a class name is a bad idea :) 19:57:34: <Catfish_Man> Mac-arena: so AIMaybeSomebodyElse 19:57:41: <Mac-arena> Hehe 19:57:43: <Catfish_Man> haskell-style 19:57:48: <Mac-arena> AIContactMonad 19:58:06: <Mac-arena> (Note: I don't know Haskell nor begin to understand monads, so I may be making a wholly nonsensical joke there) 19:58:10: <Catfish_Man> heh 19:58:33: <Mac-arena> So, anyway, we can table that for next time/the list. Any other topics? 19:58:42: <Mac-arena> Catfish_Man: Happy with your virtual gerbil? 19:58:52: <elliott> ugh I hate NSDivideRect 19:58:52: <Catfish_Man> yeah, we just need to changelog it 19:59:01: <Mac-arena> Yeah. 19:59:08: <Mac-arena> Last call for other topics! 19:59:23: <Mac-arena> In the immortal words of Mitch Hedberg 19:59:26: <Mac-arena> Meeting ADJOURNED!