Skip to main content
Jump to: navigation, search

Auto-conf meeting logs

Revision as of 14:11, 18 June 2007 by (Talk | contribs) (18 June 2007)

18 June 2007

This is a discussion I had with Scott Lewis (slewis2) on org.eclipse.ecf.discovery in general, and its overlap with our org.eclipse.iscovery. Bottom line: it overlaps quite a bit and we should consider implementing its interfaces.

<rcjsuen> Oge could you discuss with Scott?
<onnadi3> Sure thing
<onnadi3> slewis2: I'm trying to understand how 
  ecf.discovery works. Could you please tell me if my 
  understanding is correct?
<slewis2> have you taken a look at test code?
<onnadi3> The one included with jmdns?
<slewis2> plugin
<slewis2> in tests module of repo
<onnadi3> I don't think so
<onnadi3> Gimme a minute :-)
<slewis2> ok...we can chat too...proceed
<onnadi3> It seems like a service provider e.g. a Web 
  server communicates its presence by generating an 
<onnadi3> Other bundles that require the Web server, 
  register as IServiceTypeListeners
<onnadi3> Once they get the event, tehy can extract 
  the IServiceInfo and find out thte port and 
  inetaddress of said server
<onnadi3> Is that how ecf.discovery works?
<slewis2> essentially that's right...although the 
  generating of an IServiceEvent is done implicitly 
  via registerService()
<slewis2> RE: receiving the event and
  s...if the port and inetaddress is what's 
  needed...typically there will be more/other 
  service-specific properties
<onnadi3> what class contains registerService()?
<slewis2> you mean impl?
<slewis2> (or interface)?
<onnadi3> Well, I'm not sure. How are services 
<slewis2> the IDiscoveryContainerAdapter has the 
  interface (discovery API)
<slewis2> services are registered via IDiscoveryContain
  erAdapter.registerService(IServiceInfo serviceInfo)
<slewis2> the jmdns implementation of the IDiscoveryCon
  tainerAdapter is in
  y plugin, o.e.e.p.discovery.container.JMDNSDiscoveryC
  ontainer class
<onnadi3> Sorry, I'm just trying to locate the class
<slewis2> np...which one?
<slewis2> I can find URLs to src if you like
<onnadi3> I'm looking for org.eclipse.ecf.provider.disc
<onnadi3> A URL would be great, thanks
<onnadi3> Ok. So in the case of a hypothetical Web 
  server, what would it register its service to?
<slewis2> It would a) create an appropriate instance 
  of IServiceInfo, then call IDiscoveryContainerAdapter
<slewis2> then listeners would/will be asynchronously 
<slewis2> the conventions on type names are different 
  for different providers (e.g. jmdns has _http._tcp 
  for example) but the API leaves the service type as 
  typeless (String) so other providers can use other 
<slewis2> and even zeroconf's is just convention
<onnadi3> Hmm, so if this Web server didn't exist on 
  the local machine, I would write a plugin that 
  polled the server every so often and then registered 
  or unregistered the WebServerServiceInfo as 
  necessary, right?
<slewis2> you could do that...if you wanted to act as 
  a discovery 'proxy' for the web server...but it 
  would be better to just add service registration to 
  the web server
<slewis2> if you can, obviously
<onnadi3> Alright! I think I see it now. ecf.discovery 
  is kinna like a 'protocol' that servers and clients 
  can use to keep aware of each other
<slewis2> it's not a real protocol in the traditional 
  sense, as there's nothing implied about what goes on 
  wire between processes, but it is a high-level API 
  for processes to keep aware of each other...note 
  there's nothing inherently asymmetric ('server' or 
  'client') about it...any process can use as 'server' 
  or 'client'
<slewis2> API implies asynch notification between 
  processes, at level of 'service type'
<onnadi3> Excellent. I think this is what I, and 
  rcjsuen, and lemmy are looking for
<onnadi3> Thank you so much for patiently explaining 
  everything to me
<slewis2> great.  Note that although the current impl 
  is based upon jmdns, that we would like other impls 
  done...that use other protocols
<slewis2> and if generalizations are needed/necessary 
  for other 'styles' of discovery then we can/will add 
<onnadi3> Well, we're working on the discovery of 
  services that exist on the local machine, so I think 
  we'll be able to implement ecf.discovery without 
  using a protocol like SLP, jmDNS etc.
<slewis2> also note: there's a IDiscoveryService 
  interface that is intended to be an OSGi service
<slewis2> onnadi3: so you are discovering/searching 
  for OSGi services or other manner of service?
<onnadi3> Not really. More like, we're discovering 
  binaries in the filesystem or local ports running 
<slewis2> I see
<onnadi3> So am I right in saying that we can 
  implement ecf.discovery without using other 
  protocols, or IDiscoveryService?
<slewis2> yeah, can create your own impl of 
  ecf.discovery that does whatever you want
<onnadi3> sweet
<slewis2> it may be appropriate to include such a 
  plugin in ECF (as another provider of discovery) if 
* michaelr has joined #eclipse-soc
<slewis2> but just use jmdns as an example...and look 
  to implement IContainer and IDiscoveryContainerAdapte
<slewis2> then if you like you can reuse/use the 
  DiscoveryView in org.eclipse.ecf.discovery.ui...and 
  your discovered services should show up there
<onnadi3> IContainer? I don't see it in the 
  ecf.discovery source tree
<slewis2> It's in the org.eclipse.ecf plugin (core)
<slewis2> discovery depends upon it
<onnadi3> I see it
<slewis2> for ID interfaces, IContainer, ContainerFacto
  ry and some util classes
<slewis2> IContainer.getAdapter(IDiscoveryContainerAdap
  ter.class) is how you get an IDiscoveryContainerAdapt
  er instance (or via OSGi service)
<onnadi3> We'll probably be using OSGi services, so I 
  guess we won't need to implement the IContainer
<slewis2> in jmdns/plugin.xml you will see that it 
  defines a namespace and a container 
  will probably need to do this too
<slewis2> ...or OSGi services...sure
<onnadi3> I can't find jmdns/plugin.xml in here:
<slewis2> see org.eclipse.ecf.tests.discovery.Activator
  .start for the access to discovery as OSGi service 
  (note that IDiscoveryService is sub-interface of 
<slewis2> yeah, it's not in jmdns project...its here...
<slewis2> we simply use jmdns as a library for jmdns 
  impl of has no knowledge of ECF or Eclipse 
  concepts (ID, IContainer, adapters, etc)
<onnadi3> OK. I have one last question. I noticed in 
  the IDiscoveryContainerAdapter  Javadoc, it says 
  that gets are synchronous and  requests are 
  asynchronous. What is the difference between get and 
  request and what does it mean for them to be synch 
  vs. asynch?
<slewis2> this is a good thing, as it makes it quite 
  easy to take other discovery protocols and 'wrap 
  them' with an ECF-aware bundle
<slewis2> requests don't block (and don't have return 
<slewis2> gets do block (how long determined by 
  timeout), and return IServiceInfo (or others)

16 June 2007

Action items:

1. We should all complete the commiter registration process so we can begin moving our code to

2. Look at org.eclipse.ecf.discovery to see if we can reuse their code

<onnadi3> Good morning all
<lemmy> Lets time today's meeting for one hour? should be 
  enough, shouldn't it?
<lemmy> Hi onnadi3
<onnadi3> lemmy: sure thing
<lemmy> btw. we could change our meeting time now that i'm 
  back in cest.
<lemmy> I'm fine with the current time though, but i'd not 
  mind moving it to a later spot so you have time for a 
  decent breakfast?
<onnadi3> Eh, I'm now used to waking up freakishly early 
<lemmy> ok, so meeting time will remain as is.
<onnadi3> Howdy, rcjsuen
<rcjsuen> ogeHi
<lemmy> 1. as SCM
<lemmy> Remy, I guess the process has been started and the 
  foundation will contact me and Ogechi.
<rcjsuen> Yes
<onnadi3> I've been contacted. I can start filling out the 
  paperwork after the meeting
<lemmy> They have contacted you already? that is fast.
<onnadi3> Yeah, someone called
<rcjsuen> More like, that's scary.
<rcjsuen> that might be an automated email
<rcjsuen> lemmy: did you get anything in your 
  dev.eclipse.or gemail?
<rcjsuen> Or did i fill that in wrong
<lemmy> remy, nothing so far
<rcjsuen> nope, i used
<rcjsuen> should be okay
<rcjsuen> oh wel
<lemmy> lets wait a day for the email to come and take 
  actions then.
<rcjsuen> yeah
<rcjsuen> weekends and all
<rcjsuen> give them a business day or two i guess
<onnadi3> Should we move to the next item?
<rcjsuen> yes, let's
<lemmy> I've changed my Bugzilla id and now I can't log 
  into the wiki anymore. 
<rcjsuen> i guess we're all looking at http://wiki.eclipse.
  org/index.php/Auto-conf_meeting_agenda ?
<rcjsuen> although SCM was last instead of #1
<onnadi3> yup, I'm looking at it
<lemmy> 2. Status common-collections
<onnadi3> Well, I eventually didn't need the MultiMap 
  class so I did not use commons-collections
<lemmy> perfect :)
<rcjsuen> well then
<lemmy> why isn't it necessary anymore? some design change?
<onnadi3> Yeah, kinna. I originally thought that 
  IFinder.find() would return a MultiMap of all the 
  services it was capable of finding
<onnadi3> Hence it would need a MultiMap
<onnadi3> But then I realized that we wouldn't want *all* 
  the services discovered if only 1 was needed
<onnadi3> And so the MultiMap class went out the door
<lemmy> 3. dynamic discovery and undiscovery of a service
<lemmy> a) during runtime a service might appear and 
  disappear again. Hence we need a way to handle this 
<lemmy> I believe this is a rather important scenario 
  which should be covered by our design.
<onnadi3> Could we perhaps have a field in ServiceID that 
  denotes when a service is 'volatile'?
<onnadi3> In that case, things like services at ports or 
  sockets could be marked volatile and their discovery 
  results wouldn't be cached
<lemmy> do you have an example for a non volatile service ?
<onnadi3> Well, binaries could be non-volatile
<lemmy> caching and volatile are different things.
<onnadi3> What I mean is that the results from discovering 
  'volatile' services won't be cached
<onnadi3> But those from non-volatile will
<lemmy> i might make sense to cache those results too. at 
  least it should be possible with the cache implementation
<rcjsuen> some kinda switch to enable/disable i guess
<lemmy> and binaries might be volatile as well.
<lemmy> imagine a binary on a removable disk.
<onnadi3> Ah
<lemmy> i suggest to assume all services to be volatile.
<rcjsuen> someome might suddenly uninstall gcc!
<onnadi3> How does Eclipse handle the locations of  JREs?
<lemmy> that's an even better scenario.
<rcjsuen> You mean when someone uninstalls a JRE? Hm, I 
  never thought about that.
<lemmy> onnadi3: i'm not sure if jdt checks for existence 
  and handle this case gracefully.
<rcjsuen> I guess you want to look at the implementations 
  of org.eclipse.jdt.launching.IVIMInstall.
<lemmy> but you will probably get some sort of error 
  message. either low level or high level.
<onnadi3> Alrighty. I was just thinking that whatever is 
  good enough for JDT is good enough for us :-)
<lemmy> we need to distinguish between two different 
  undiscovery events. one that is actively triggered by 
  some finder (running asynchronously in a Thread) and a 
  simple rediscovery.
<lemmy> we won't have asynchronous Threads for binaries I 
  guess, but we might have them for network services. For 
  example jSLP works exactly like this.
<lemmy> This Thread would fire an undiscovery event.
<rcjsuen> so simple rediscovery you mean as in just 
  invoking find() again?
<lemmy> which brings us to the question if consumers can 
  register for undiscovery event.s
<onnadi3> What do you mean by undiscovery?
<lemmy> rcjsuen: excatly
<lemmy> undiscovery == service is gone
<onnadi3> Hmm, I don't think people will/should be able to 
  register for undiscovery events since we're not 
  guaranteeing that they even get discovery events. They 
  have to call Discovery to find if a service is there
<lemmy> For most of the stuff I'm talking about you will 
  find code in org.eclipse.ecf.discovery.
<lemmy> And I suggest that we all have a deeper look into 
  it. It seems as we might be able to reuse/extend this 
<lemmy> Basically it is a framework for discovery of 
  remote services. But I don't see a reason why it 
  couldn't be used for local discovery too.
<lemmy> Btw. Scott Lewis is the project lead for ECF and 
  also a mentor.
<onnadi3> what's his IRC handle?
<rcjsuen> slewis2
<lemmy> Actually he is the one who brought me up to the 
<lemmy> It even offers some basic UI to show discovery 
* rcjsuen coughs.
<onnadi3> cool. So we all look at ecf.discovery and decide 
  whether or not to rearchitect our own Discovery?
<lemmy> ?
<rcjsuen> I mean, that code ain't great
<onnadi3> rcjsuen: :-)
<lemmy> rcjsuen: the ui code?
<rcjsuen> from what i've seen before
<lemmy> rcjsuen: the ui code?
<rcjsuen> yeah, that
<lemmy> OK, I don't really mind if the UI code is scrap or 
  not. As long as the framework behind has potential. .)
<lemmy> :)
<rcjsuen> true
<rcjsuen> Well, I haven't looked at the discovery APIs 
<rcjsuen> Not my area in ECF
<onnadi3> So we all look at ecf.discovery and decide 
  whether or not to rearchitect our own Discovery?
<lemmy> My vision is to hook into the ECF discovery 
  framework and focus on implementing the finders. This 
  might even answer the question of project housing for 
* zx|work has quit IRC (Read error: 110 (Connection timed 
<lemmy> onnadi3: Yep, we should definitely do that. Even 
  if we later see, that we cannot use it.
<onnadi3> Hope we can use it. Less work for all of us
<rcjsuen> Quite so.
<lemmy> Do we want to have another meeting in two/three 
  days to discuss our findings?
<onnadi3> Sure 
<rcjsuen> Lemme check my Lotus Notes calendar. >_>
<lemmy> Monday 7pm CEST/1pm EDT
<lemmy> ?
<rcjsuen> I might have a team meeting then, dunno what our 
  MBA student wants.
<lemmy> we could do it an hour later or two.
<lemmy> You're free at that time?
<rcjsuen> These meetings take a while
<lemmy> a while as in the whole day?
<rcjsuen> what time frame are you two free in
* zx|work has joined #eclipse-soc
<onnadi3> All week except Tuesday 10 - 11
<lemmy> usually I work until 6pm. I could do it directly 
  from work so we could start an hour earlier.
<rcjsuen> I don't know when he's gnona schedule it
<rcjsuen> is the issue
<lemmy> lets discuss the meeting time Monday once you know 
  the meeting time.
<rcjsuen> lemmy: if you can do 6pm that'd be great cuz 
  then i can just do the lunch thing
<lemmy> should be possible.
<rcjsuen> I won't be in Thursday's SOC meeting btw
<rcjsuen> lemmy: but okay, i'll talk to him on Monday to 
  see when we're having our stat meeting
<lemmy> great, anything else to talk about?
<onnadi3> Yup, I've got two more items
<lemmy> go ahead :)
<onnadi3> > 5. Decide on how to specify service versions.
<onnadi3> and 6. Should we redesign the Discovery UI (not 
<onnadi3> I guess No. 6 can wait until after we check out 
<lemmy> service versions is an interesting issue. I'm not 
  sure whether ECF provides with this or not.
<rcjsuen> Doesn't look like ECF's Discovery APIs have a 
  version concept in IServiceID or in IServiceInfo.
<rcjsuen> I guess unless it's in its properties.
<lemmy> Maybe we should extend the service version thingy 
  to  a broader view of service properties 
<onnadi3> lemmy: interesting
<lemmy> SLP allows to define properties per service which 
  can be queried by an ldap style query.
* wizEpit has quit IRC (Read error: 104 (Connection reset 
by peer)�)
<rcjsuen> Well, having properties certainly helps us scale 
  in the event of
<rcjsuen> Makes it more extensible too i naway
<onnadi3> If we allowed arbitrary properties, then it 
  would be up to the service consumer to know how to 
  identify all those features in the binary/port they're 
  looking for
<onnadi3> And so a project like CDT would, in addition to 
  defining a GCCFinder, would also define a GCCIdentifier 
  that, given a GCC binary, could tell what properties it 
<lemmy> i'd expect to have an interface like: discovery 
  gimme service x with propertiy A and property B not 
  property C
<lemmy> GCCIdentifier sound like an GCCValidator.
<lemmy> +s
<onnadi3> Sure :-) I guess my point is that we'd need a 
  way of extracting the properties from the binary/port/soc
<lemmy> well, this would be the responsibility of the 
<rcjsuen> yeah
<onnadi3> that's right
* nickboldt has joined #eclipse-soc
<lemmy> morning nick
<nickboldt> hey there
<rcjsuen> hi nick
<lemmy> rcjsuen/onnadi: If you look into the examples at, you'll see what I mean by 
  a query.
<lemmy> Also how they handle service properties.
<onnadi3> I looked it up on Wikipedia :-)
<rcjsuen> wow, very small
<lemmy> Btw. I'll probably spent some official work hours 
  getting ecf.discovery running with jSLP.
<onnadi3> lemmy: you have or you will?
<lemmy> will hopefully
<lemmy> I mean it makes sense in the project i work in.
<lemmy> and my boss has already in-officially agreed to 
  contribute the impl afterwards.
<lemmy> Anyway, I guess we are done?
<lemmy> I gotta catch a train.
<onnadi3> I guess so
<onnadi3> Bottom line, learn ecf.discovery
<rcjsuen> lemmy: okay, ttyl Markus
<lemmy> bye, have a nice day.
<rcjsuen> bye
<onnadi3> bye, lemms :-)

9 June 2007

We decided to do the following:

- Use the Apache Commons Collection MultiMap implementation. We would need to get rid of javax.beans.* since it won't compile with CDC 1.0

- Make SimpleConsumer use the console, not a GUI

- Create an immutable class, DiscoveryResults that is the return type of IFinder.find()

- Maintain a list of high-level requirements of this project

<rcjsuen>	onnadi3: Hi
<rcjsuen>	onnadi3: I realized why you SimpleFinder compiles for you but not for me.
<onnadi3>	lemmy: Good Morning. Why is that?
<rcjsuen>	onnadi3: You are using a compiler compliance level of 5.0 or 6.0
<rcjsuen>	The code will not compile below
<rcjsuen>	My workspace default is 1.4 so it was using a 1.4 setting.
<rcjsuen>	I set the project to 5.0 and it compiled.
<rcjsuen>	See for yourself.
<onnadi3>	OK. I remember fixing the problem somehow but I'm not sure what I did. I'm pulling up Eclipse now
<lemmy>	Hi
<onnadi3>	lemmy: Wie geht es Ihnen? :-)
<lemmy>	Super
<lemmy>	Tomorrow I'll leave India  and travel back to Germany. :)
<onnadi3>	Nice. You excited?
<lemmy>	The previous three months have been a nice experience, but I'm happy to go back.
<onnadi3>	Ah. So I gues this is also the end of your crunch time, eh
<rcjsuen>	onnadi3: Did you look at your blog's replies?
<lemmy>	Yep
<onnadi3>	just checking em now
<onnadi3>	Oops. Ouch
<onnadi3>	Sheesh! Why didn't I notice that??
<onnadi3>	oh well :-)
<rcjsuen>	The ol' debugger would've done it.
<lemmy>	The third comment is the most interesting one. But I'm not sure about the JDK dependencies of common-collections.
<onnadi3>	Well, the commons collection is the Apache Jar that I mentioned in my earlier e-mail
<onnadi3>	You said we should avoid the licensing issues, right?
<rcjsuen>	That was me.
<lemmy>	Apache license is compatible. Orbit might even contain it already.
<rcjsuen>	I just don't want to pull in a jar if I'm just using one class.
<onnadi3>	lemmy: oops. Sorry :-)
<lemmy>	What's on the agenda for today?
<lemmy>	I'm a little bit in a hurry, cause I still need to pack my bags...
<onnadi3>	Well, the only problem I'm having now is figuring out how to query Discovery for the services published to it
<lemmy>	It appears as if commons-collection isn't in Orbit yet, but many other commons-* are.
<lemmy>	+1 for using commons-collections if foundation 1.0 works for it.
<rcjsuen>	yes, I don't see it in Orbit
<rcjsuen>	It might be something odd like J2SE-1.2.
<onnadi3>	So I'd just download the jar and import from there, right? I don't have to use org.orbit?
<ijuma>	i'd guess 1.2 minimum too
<rcjsuen>	I think httpclient is j2se-1.2
<ijuma>	rcjsuen: why is 1.2 odd?
<lemmy>	Create a new plug-in for that JAR. There is even a wizard for such a task.
<rcjsuen>	ijuma: I didn't think people cared about j2se-1.2 ;)
<rcjsuen>	then again, until i hopped on the eRCP bandwagon, i didn't think anyone cared about anything below j2se-1.4
<onnadi3>	lemmy: why do I have to create a new plugin for the Commons jar?  ican just include har in my current plug-in project, can't I?
<ijuma>	rcjsuen: well, because it's where the collections framework was introduced, it's likely that commons-collection would require that much at least
<ijuma>	but possibly 1.4 too
<ijuma>	i know it's not 1.5
<ijuma>	(yet)
<rcjsuen>	ah
<lemmy>	onnadi3: creating a separate plug-in for a jar has the advantage, that other plug-in can reference the very same jar too.
<onnadi3>	lemmy: Ah. That's clever.
<lemmy>	And in this specific case, commons-collection might get included in the Orbit project. Discovery would then reference it there.
<onnadi3>	So even though I'd include the jar in a plug-in, Discovery will still reference it as a package exported by a plugin, not as a plugin itself, right?
<lemmy>	It's a lessons learned thing. Many many plug-ins used to include log4j. In the end this caused some headaches.
<ijuma>	rcjsuen: but to answer your question, Spring 2.0 still works with 1.3. 2.1 has just moved to 1.4 in the last development milestone. So yeah, people in the enterprise are also _slow_ ;)
<rcjsuen>	yeah
<rcjsuen>	I realized a lot of ppl are still on 1.3
<onnadi3>	lemmy: So, do you have any ideas for how I can get the services stored in Discovery via  a call to a Consumer class?
<lemmy>	I don't see the difference in your question. Discovery depends on the collections plug-in. The collection plug-in exports a couple of packages which then can be used by Discovery.
<rcjsuen>	I imported commons collection's source to my workspace
<rcjsuen>	It won't work on CDC1.0 because of java.beans.*
<rcjsuen>	lemmy: yeah i told him that
<lemmy>	OK
<rcjsuen>	it's To Be Addressed
<lemmy>	rcjsuen: Can you tell which part of collections requires java.beans*?
<rcjsuen>	BeanMap
<rcjsuen>	if I delete it it's okay
<lemmy>	If that is the only reason, we could modify the JAR and file an enhancement request at
<rcjsuen>	The binary apepars to be 571,259 bytes.
<rcjsuen>	This will likely not fly in an embedded context.
<lemmy>	Size doesn't matter. ;)
<onnadi3>	:-)
<lemmy>	rcjsuen: Should be easy to optimize size-wise for the embedded use case.
<rcjsuen>	well, just saying, Equinox won't like this
<lemmy>	In general I prefer to reuse existing code over implementing from scratch.
<lemmy>	Fight NIH. :)
<rcjsuen>	NIH?
<lemmy>	Not Invented Here
<rcjsuen>	o
<rcjsuen>	well, let's address onnadi3's question
<onnadi3> lemmy: So, do you have any ideas for how I can get the services stored in Discovery via  a call to a Consumer class?
<lemmy>	Yep
<onnadi3>	Yay!
<lemmy>	So you're asking how the interface might look like?
<rcjsuen>	I think he's asking about how consumer plug-in accesses discovery plug-in.
<onnadi3>	Well, no. The interface is simply a menu item that you click and it should display a popup that lists all the found srevices so far
<onnadi3>	rcjsuen: Yup!
<lemmy>	onnadi3: Why do you "waste" time implementing a UI?
<onnadi3>	It took 0 time. It was what was produced by the Eclipse Wizard
<lemmy>	Testing is much better done with JUnit.
<onnadi3>	lemmy: Well, I wanted to complete the example
<lemmy>	Btw. I'm missing JUnit test cases in general.
<onnadi3>	Since I've written a SimpleFinder, I also want a SimpleConsumer 
<lemmy>	I'd suggest to design the consumer as a JUnit plug-in project.
<onnadi3>	The only thing I think I can test right now is the MultiMap class (which will going soon anyway). The rest of the code is boilerplate which I don't hinkw we agreed on how to test it
<lemmy>	Where is the implementation for MultiMap?
<onnadi3>	Does a JUnit plugin project mean simply a blank project with JUnit testcases in it?
<onnadi3>	Sorry, the MultiMap code is not in the repo yet because I couldn't get th test for it to work
<onnadi3>	I guess I should put all compiled code in the repo, huh...
<rcjsuen>	My boss was just telling us to commit our project's code yesterday ;)
<rcjsuen>	I sidestepped by saying he just told us the package name to use today (which was different from what I was using) so I had to refactor and test properly ;p
<onnadi3>	:-)
<lemmy>	Might be that I'm not used to CVS anymore, but I'm fine with compiling but untested code in the repo.
<lemmy>	Simply to make sure the code is in a safe place.
<onnadi3>	Alrighty. Sorry about that. I'll have it up today
<rcjsuen>	just commit whenever you make a little change
<rcjsuen>	will save you time when you screw things up
<onnadi3>	Gotcha. And then i can actually discuss it with people
<rcjsuen>	I can speak from experience.
<rcjsuen>	onnadi3: yes, just create a org.eclipse.discovery.tests plug-in project
<rcjsuen>	then put your test cases there
<rcjsuen>	maybe some "fake code" if necessary
<lemmy>	I'm just picky, but in IFinder it reads "find() heuristically locates...". Why include "heuristically" in the interface at all? Seems more like an implementation detail to me. :)
<onnadi3>	Alrighty!
<onnadi3>	lemmy: good point on that
<onnadi3>	I'd still like to have an examples package where I can show how a consumer would utilize discovery to get services from a Finder
<rcjsuen>	yes, working examples are critical
<lemmy>	Even though I agree on the necessity for examples, I still think UI is a waste. Somebody wanting to use discovery will not care about the UI part. It will even make the example harder to understand.
<rcjsuen>	well, the sample unit test should be exemplary enough in that context
Jun 09 10:16:19 *	kreismeister ( has joined #eclipse-soc
<onnadi3>	lemmy: Well, I kinna thought that a real world Consumer would have a UI
<rcjsuen>	yes, but anyone that's going to use your plug-in already knows how to write a UI
<onnadi3>	And also, I wasn't sure how to control a plug-in from the console
<lemmy>	onnadi3: They probably will, but they want to learn how to use Discovery and not how to wire it up to the UI layer. :)
<lemmy>	onnadi3: Run Eclipse/OSGi with "-console". "help" will then show you what you can do.
<rcjsuen>	lemmy: for the issue of accessing the services
<onnadi3>	Alrighty
<rcjsuen>	lemmy: you're more familiar with OSGi services
<lemmy>	Which issues? I must have missed them. :o
<onnadi3> lemmy: So, do you have any ideas for how I can get the services stored in Discovery via  a call to a Consumer class?
<rcjsuen>	that
<lemmy>	Does services in this context really mean OSGi services?
<onnadi3>	oh no no no
<onnadi3>	It means the services that Finders find
<rcjsuen>	well then, never mind
<lemmy>	Btw. I would find() let return something like a DiscoveryResult rather than a Map. Internally it could still use a Map though, but later you might want to add some methods to it.
<lemmy>	...which would be possible with a Map, but would look funny.
<onnadi3>	okey-doke
<onnadi3>	(BTW, you can find the MultiMap code I wrote here
<lemmy>	Also it shouldn't be possible for a consumer to modify the DiscoveryResults (Map).
<lemmy>	Since you might return a reference to the internal discovery cache.
<onnadi3>	Ah. An immutable structure
<rcjsuen>	yes, immutable is good
<lemmy>	Maps.unmodifiableMap(aMap).
<lemmy>	IIRC
<lemmy>	But if you use a DiscoveryResult, you don't need to expose the Map at all.
<onnadi3>	Alright, I can do that
<lemmy>	onnadi3: May I remind you of this "must", "should" and "nice to have" list that we agreed upon in last weeks meeting? :)
<lemmy>	Requirements tracking is somewhat important to me.
<lemmy>	Later we might want to create enhancement requests ( out of it. :)
<onnadi3>	Yes, that's a good point. So the DiscoveryResults thing would go in the "must" box, right?
<lemmy>	Why not. :)
<lemmy>	Though we should also keep track of higher level requirements.
<lemmy>	Mostly all the ideas which came up last week.
<onnadi3>	OK
<onnadi3>	So, somethign like this "IFinder.find() must return a class (say, DiscoveryResult) that contains a Map or whatever data structure is used internally."?
<lemmy>	MutliMap does not compile for me and I'd move it to .internal. too.
<lemmy>	Exactly
<rcjsuen>	lemmy: for the requirements page?
<lemmy>	rcjsuen: ?
<rcjsuen>	onnadi3: is that for the requirements page?
<onnadi3>	Yeah, e.g.
<rcjsuen>	That'd be a bit too low level in my opinion. You should scratch out the "Map or whatever data structure" bits.
<rcjsuen>	Just say it contains the results and leave it at that.
<lemmy>	Might be the case that it doesn't need a Map later on anymore.
<onnadi3>	rcjsuen: Hmm, but then Map would fit the requirement...
<lemmy>	Leave the internal implementation to the code. Only document external interfaces. :)
<rcjsuen>	yes, don't get into the implementation details if possible
<onnadi3>	OK
<rcjsuen>	as long as I can get the results
<rcjsuen>	i don't care if you're using a List of Lists or not
<onnadi3>	:-)
<lemmy>	onnadi3: You can't add domain specific methods to a Map which you can do with a domain specific object. That's my whole point for DiscoveryResult.
<onnadi3>	lemmy: I understand
<onnadi3>	Now could we please go back to the issue of getting the results from Discovery. It seems tht without that final example, I won't have made any real progress
<lemmy>	Sure
<lemmy>	Offer an EP that returns the DiscoveryResult
<lemmy>	Or start with a OSGi Service. 
<onnadi3>	The consumer offers an EP?
<lemmy>	Nope, Discovery does.
<onnadi3>	I thought EPs take classes of a certain type. Can they pblish, too?
<lemmy>	Let me sketch it out for an OSGi service: Discovery registers an IDiscoveryService which offers a method discover(ServiceIdentifier)
<lemmy>	A consumer would then obtain the service an call the method.
<lemmy>	Since we don't have ServiceIdentifiers atm, the identifier could simple be a String for the moment.
<lemmy>	Basically this String will be somehow mapped to the key in the Map I assume.
<lemmy>	Reasonable so far?
<onnadi3>	So, in the code I have, the FinderTracker would also register an IDiscoveryService ?
<onnadi3>	Why does it have to be an interface seeing as there's only 1 Discovery?
<lemmy>	An interface is useful because consumer plug-ins might want to include this very interface in their plug-in. If an OSGi service is optional and at runtime not present, the consumer code would break because it might access the interfaec.
<lemmy>	If the interface is included in the consumer plug-in, it will not break with a NoClassDefFound.
<onnadi3>	oh!!
<onnadi3>	How long have you been coding OSGi?
<lemmy>	Not that long. Just for a couple of month.
<onnadi3>	Oh man...
<onnadi3>	Alright. So Discovery has an extension pt. that accepts IDiscovyerServices
<onnadi3>	So when Discovery is given a new extension, it changes a field in the IDiscoveryService to the results of calling discover(serviceID)
<lemmy>	I'd suggest to skip the EP for the moment and solely use OSGi services. An EP can be designed later with the knowledge gained while working with OSGi services.
<lemmy>	I don't get this.
<lemmy>	Remy?
<onnadi3>	lemmy: what don't you understand?
<rcjsuen>	No idea.
<lemmy>	I gotta go now. :( Can we continue Monday afternoon?
<onnadi3>	Sure. But if you have time, please send me an email about how to get data from Discovery via a separate OSGi bundle
<onnadi3>	I still don't understand how to do it
<rcjsuen>	Maybe this will be helpful
<rcjsuen>	Was good enough for me for the most part.
<lemmy>	Talk to you guys on Monday. :)
<rcjsuen>	bye
<onnadi3>	lemmy: have a safe trip
<lemmy>	Thanks

2 June 2007

At this weekly meeting we tried to decide on exactly what the term "service" means, but we decided to save the discussion for a later date. We also decided on a preliminary architecture for the Discovery plug-in: Discovery will be an OSGi bundle that connects with other service finders through the OSGi services API, but connects with service consumers through Eclipse Extension Points.

<onnadi3> thanks
<lemmy> I'm not sure, did I send my proposed meeting agenda out?
<onnadi3> I didn't get yours...I sent one out, though
<lemmy> I thought that one was in response to mine.
<lemmy> it's out
<onnadi3> Could you please send it again? I can't find it in mly inbox
<lemmy> I've sent it a minute ago
<onnadi3> got it
<lemmy> it overlaps with your email
<onnadi3> No problem. Yours is bigger so let's go over the technical aspects of yours, get to p. number 2 in mine, and then move on to the organizational issues
<onnadi3> So, first point: "What exactly is a "service" anyway? (Better term...)"
<lemmy> a minute... I'm in voip call currently.
<onnadi3> Oh...sorry
<lemmy> no problem
<lemmy> remy: you're with us?
* soulreaper has quit (Read error: 104 (Connection reset by peer))
<rcjsuen> yes
<lemmy> great
<lemmy> onnadi3: first point is about deciding if a service needs an identifier. for that we should know what a "service" might be
<lemmy> Suppose plug-in A wants to discover a JDK and calls discovery. plug-in B wants to discover a JDK too, but how would discovery know that it can return the results from the previous run.
<onnadi3> lemmy: Services can be binaries, or ports where a daemon is listening
<lemmy> that sounds pretty much like a technical description of a service.
<lemmy> s/that/this
<onnadi3> Hmmm, if we assume for the moment that plug-in A does not care about version, then the name of the binary can be its identifier
<lemmy> Will this work for a daemon running on a remote host?
<lemmy> You don't have a name and only a simple port number.
<onnadi3> Hmm, that was why I tried using URIs in my sample implementation. That way, we're not restricted to only local binaries or ports
<lemmy> What about URIs and versions?
<onnadi3> That's a bit trickier
<onnadi3> IIRC, GNU Autoconf somehow doesn't bother about version numbers
<onnadi3> It only tests for features
<onnadi3> And that's kind of what I would like to do also since it will simplify matters a lot
<rcjsuen> No, autoconf can check versions
<lemmy> Also if I create a JAVA5 project, I want Eclipse to suggest only >=JAVA5 JDKs
<onnadi3> true true
<lemmy> or foundation 1.0. ;)
<onnadi3> :-) or that
<lemmy> Btw. foundation 1.0 makes it even more complicated because it represents a group of possible jdks.
<rcjsuen> Well, there are no URIs in F1.0 anyway.
<onnadi3> Yeah. But we can still use logical URIs
<onnadi3> But I guess the main problem to detect version?
<lemmy> detecting a version is really specific to a binary.
<lemmy> I'd assume it is something specified by a consumer.
<onnadi3>  Do you know how Autoconf does it? I'm rebrowsing their docs right now
<onnadi3> would that help GNU Autoconf find the bin? I'd hope they didn't call <binary> --version
<rcjsuen> Well, not everything has a binary, so that wouldn't make sense.
<onnadi3> Yeah. And i think if you ant to add a test for sthg it doesn't know about, you have to write the test yourself
<rcjsuen> Define "doesn't know about"
<onnadi3> Well, let's say configure only knew how to detect JDKs, then if you wanted it to detect GCC, you'd have to write your own test for GCC
<onnadi3> I think
<rcjsuen> hm
<lemmy> configure shouldn't know how to detect jdks. It should know how to discover a specific resource with given attributes.
<lemmy> a consumer passes those attribute to configure to utilize the discover facilities.
<lemmy> discovery facilities could be a registry finder, a fs finder, a port checker...
<lemmy> the consumer would know how to use these finders to find what he needs.
<lemmy> my point about a service identifier is to have a globally valid identifier for a given service/resource.
<lemmy> however there is a problem. if a second consumer tries to discover a certain resource that has already been identified and discovery would just return already known results, it might miss resources which would have been discovered because of much better heuristics by the second consumer.
<onnadi3> Will it be possible to assign a unique identifier to every program?
<lemmy> Would be great if we would already have such identifiers.
<lemmy> Or at least a schema by which we could generate reproducible identifiers.
<rcjsuen> lemmy: Hm, that's an interesting scenario
<lemmy> rcjsuen: a simple and stupid solution would be a "force" flag to always rediscover even with previous results.
<lemmy> Having identifiers also allows for consumers to not provide discovery rules. They would reuse already exiting discovery rules without shipping them.
<lemmy> shipping/including...
<onnadi3> So I guess the main problem now is how to incorporate version information into the "service" name in a standard way
<onnadi3> Most (though not all) program I know use an increasing  numerical scheme for versioning so maybe all we have to do is concat the binary's name with its versio
<onnadi3> Then we ca ntell if one version is greater or less than another
<lemmy> Or have an identifier class with names and versions. ;)
<lemmy> However, implementation doesn't really matter, does it?
<lemmy> yet
<onnadi3> Well...I was trying to make it general enough to also encompass ports (which do not have version information)
<lemmy> The port doesn't, but the service behind it. :)
<onnadi3> Wait. That's not true. There might be different versions of processes running at the same port
<onnadi3> :-)
<lemmy> For my web project I need Tomcat 5 and not 4. :)
<onnadi3> Hmmm, so I guess it all boils down to finding binaries
<onnadi3> Whether hidden behind an fs, or a port
<lemmy> Though we are talking pretty much about semantics of  discovery results. Might it be more reasonable to provide a broad collection of finders and the consumer provides the semantics instead?
<rcjsuen> I don't think that's unreasonable.
<onnadi3> OK. So as you said earlier, discovery provides libraries for searching the fs, ports, registry etc. for whatever it is a consumer is looking for
<lemmy> Well, those are just my thoughts. :)
<onnadi3> They're good thoughts. I like the idea
<onnadi3> We just have to solve the little details now
<lemmy> normally the details bite us in the a**
<onnadi3> We got all summer to get used to it :-)
<lemmy> so we will file having service identifiers as should but currently as too hard to implement and move on to the next thing?
<lemmy> like we've done with validation.
<onnadi3> Well, i was thinking of defining service as sthg like "any resource that can be identified by a URI"
<onnadi3> (implementation of URI may vary)
<lemmy> I'm a little bit short on time currently, but maybe we can open a list on the wiki with "must", "should" and "nice to have" to keep track of the features?
<rcjsuen> Yes, probably better to move on. We don't want this meeting to on forever on this thing
<onnadi3> Alrighty
<onnadi3> Next point, "Extension Points vs. OSGi (declarative?) services"
<onnadi3> Do y'all think it is worth it to write custom tools for dealing with OSGi services?
<lemmy> first of all, we don't need to decide "either/or". We can use both.
<onnadi3> Well, I thought the only place we need them is for connecting customer plugins with Discovery
<onnadi3> And once we're using XPs, there won't be any need for OSGi services
<lemmy> XPs?
<rcjsuen> eXtension Points
<lemmy> What's wrong with EPs? ;)
<lemmy> XP is already used by extreme programming. :)
<lemmy> my head that is.
<rcjsuen> lemmy: same
<lemmy> onnadi3: writing service doesn't really require tooling (maybe for declarative service it does though).
<onnadi3> Yeah. For declarative you don't think we'll need dynamic discovery of system resources aka Services?
<lemmy> My only point is, that EPs have more dependencies whereas OSGi services are pretty low level.
<onnadi3> What kind of dependencies?
<onnadi3> (I'm not attached to EPs. I jsut want whatever is simplest)
<lemmy> Using services for low level API might therefore be useful. For high level EPs are a better fit.
<rcjsuen> onnadi3: Well, a lot more people are familiar with extension points anyway.
<lemmy> I'm just aiming at this provisioning angle...
<lemmy> In provisioning you might not have access to org.eclipse.*
<rcjsuen> looks like org.eclipse.equinox.common, runtime_registry_compatibility.jar, org.eclipse.equinox.registry
<rcjsuen>, org.eclipse.osgi
<lemmy> org.eclipse.osgi? That's new to me
<lemmy> Is it the plug-in or package name?
<rcjsuen> well, bundle symbolic name is org.eclipse.osgi
<rcjsuen> but sure there are org.osgi.* stuff and also org.eclipse.osgi.* stuff
<lemmy> I'd suggest to hook the finders to the base discovery via services and offer services and EPs to consumers.
<lemmy> This would certainly require another plug-in on top of base discovery that encapsulates EPs.
<onnadi3> what do you mean encapsulate EPs? Wouldn't I just provide the Extension Points and then consumers can write extensions for them?
<lemmy> bear with my terrible first grade painting skills. :)
<lemmy> "EP connector" is necessary so that base can be used in a pure OSGi environment.
<rcjsuen> I see your point.
<lemmy> Maybe this is overengineering.
<lemmy> however foundation 1.0 already leads the path in this direction.
<onnadi3> lemmy: Could you please explain what provisioning does? I didn't really understand their Wiki page
<lemmy> I don't think their use cases have been fixed yet. :
<lemmy> Simplified it deals with bringing Eclipse to the customer.
<lemmy> Eclipse in this context doesn't mean the SDK.
<lemmy> But software components (== bundles == plug-ins) in general.
<lemmy> One of the goals of provisioning is to redo the UpdateManager.
<lemmy> And to get rid of "features". ;o
<onnadi3> So its just a reimplementation of parts of Eclipse??
<rcjsuen> Except something-not-named-features-but-acts-just-like-features will probably remain.
<lemmy> *g*
<onnadi3> Well, if provisioning is important enough then we might as well use OSGi services and EPs
<lemmy> It is up to us how important we rate them. I tend to rate fundamental facilities very high though.
<lemmy> But this isn't carved in stone
<lemmy> onnadi3: I feel like you dislike services? ;)
<lemmy> s/I feel/It feels
<onnadi3> No, I don't. They seem a bit more straightforward than EPs
<onnadi3> You simply call a method to register your bundle. that's it
<onnadi3> But in sum, I'm worried because I don't understand what Provisioning is good for but it sounds like it is worth the effort to use services and EPs
* rcjsuen__ ( has joined #eclipse-soc
<lemmy> We might want to bring Pascal into the discussion.
<rcjsuen__> My connection problems are kicking in.
<lemmy> :(
* benny`work (n=benny@eclipse/developer/Technology/bennywork) has joined #eclipse-soc
<onnadi3> rcjsuen, rcjsuen__:There're are two of you :-)
<onnadi3> Anyway, I think we've kinna beaten this topic to death. We should probably go with OSGi and EPs for now, and then if necessary, revisit the issue
<lemmy> I agree, and at first the effort for correcting our decision isn't to high.
<lemmy> too
<lemmy> Speaking about IRC connection problems, I could offer both of you an account for my IRC proxy. This should solve your firewall problems too, since it runs on 57000
<onnadi3> that would be nice
<lemmy> It keeps a buffer of the last n lines so you don't miss anything while you're disconnected.
<lemmy> onnadi3: OK, I'll set it up then.
<lemmy> Lets stick to the organizational topics, they seem to be easy. :)
<onnadi3> And on that note, we can move to "       - Rules Engine
<onnadi3>                - DSL vs. Rule Engines vs. anonymous Classes
<onnadi3>                - JSR94 ("
<lemmy> onnadi3: what about syndicating your blog on the planet?
<onnadi3> I already posted a bug report about it but I don't think anyone's looked at it yet :-(
<rcjsuen__> onnadi3: Number?
<lemmy> Great, so it should appear soon.
<rcjsuen__> lemmy: did you talk to Gunnar/Chris directly or something?
<lemmy> By meeting minutes I mean that we should try to summarize our meetings and post those to the mailing list/wiki. A simple chat log is way to verbose for outsides to read.
<lemmy> Chris is currently on the road which might be the reason for the delay.
<lemmy> If it isn't syndicated on Monday, we should ping them directly.
<rcjsuen__> I was talking to Chris last night on Sametime
<rcjsuen__> I think he was in the airport maybe or something
<lemmy> rcjsuen: so you will take care of that issue? :)
<rcjsuen__> lemmy: if onnadi3 gives me the bug #
<lemmy> I don't have Sametime. ;)
<lemmy> rcjsuen: I'm sure this can be arranged.
<rcjsuen__> or i guess technically i don't need the bug # i can just give him the blog link
<onnadi3> I'm searching for it....
<rcjsuen__> but better that way since he can then resolve that bug
<rcjsuen__> lemmy: i will ST him next time i see him and asusming he's not busy
<rcjsuen__> he's a busy guy after all o.O
<lemmy> who isn't these days.
<onnadi3> y'all know how to search for only bugs posted to PlanetEclipse?
<lemmy> I have a suggestion as a first milestone due next week: Implement a simple fs finder connected to org.eclipse.discovery via a service. An exemplary consumer utilizes this finder to discover JDKs. :)
<lemmy> Next week meaning 06/09.
<lemmy> Including the CVS cleanups.
<onnadi3> I can do that.
<lemmy> Might make sense to implement the consumer in form of some JUnit tests.
<onnadi3> I'm not sure about the consumer part...since that will require extension points and I don't know when exactly my book will arrive next week
<lemmy> So we get around the Drools discussion this time. ;)
<lemmy> onnadi3: Use a service or just simple method calls for the moment.
<onnadi3> okey-doke
<onnadi3> Could you please give me an example of what the tests would look like?
<benny`work> hi guys
<onnadi3> the junit tests
<lemmy> After all org.eclipse.discovery is supposed to provide EP _and_ services.
<onnadi3> benny`work: hallo
<benny`work> hi onnadi3
<lemmy> JUnit might be tricky since you don't know the fs content where the tests get executed.
<lemmy> Hi Benny
<benny`work> hi markus
<lemmy> You don't really know how many JDKs to expect.
<lemmy> Might be possible to mock the content of the fs somehow.
<onnadi3> I think I can do it as org.eclipse.discovery.examples instead
<lemmy> renaming/moving is never a problem. We have great tooling at our disposal. ;)
<lemmy> for the meeting minutes I suggest to rotate the burden. who wants to take care of this meeting? :o
<onnadi3> rcjsuen: I refiled the bug. Its #190652
<onnadi3> lemmy: I can do it all. Old meeting logs are here
<onnadi3> So should we move on to the DSL vs. Drools or figure out TagSea first?
<lemmy> dunno, maybe we can keep drools for next week.
* _rcjsuen ( has joined #eclipse-soc
<lemmy> Btw. by meeting notes I'm talking about a summary instead of just a chat log.
<onnadi3> oh. ah.
>_rcjsuen< don't you wanna use the proxy I've offered you?
<_rcjsuen> Well, that was painful.
<onnadi3> Three rcjsuens!!!
* rcjsuen has quit (Read error: 110 (Connection timed out))
>_rcjsuen< don't you wanna use the proxy I've offered you?
<onnadi3> Alright. We could rotate the responsibility but I don't mind doing the chat logs and the summaries
<lemmy> Perfect :)
<onnadi3> I'm getting paid big bucks to do it, anyway B-)
<lemmy> TagSE is just an idea how to make the code easy to understand for Remy and me. Check out the website and decide for yourself if it makes sense after all. I haven't used it yet.
<_rcjsuen> I've looked at TagSEA.
<_rcjsuen> Never used it, but have seen a 5-10 minute demo.
<onnadi3> It seems to me like we should start with Javadoc and move to TagSea if we find deficiencies. I'm not sure what TagSea will really accomplish for us
* onnadi3 has quit (Read error: 104 (Connection reset by peer))
* rcjsuen__ has quit (Read error: 110 (Connection timed out))
* onnadi3 ( has joined #eclipse-soc
<onnadi3> lemmy: Could you please save your chat log? I think you're the only one with the complete thing now
<lemmy> Sure, I'll send it to you
<onnadi3> danke
<lemmy> bitte
>_rcjsuen< Are you going to use the bouncer? Otherwise I would reuse your account.
* onnadi3_ ( has joined #eclipse-soc
<onnadi3_> rcjsuen, lemmy: Sorry guys
<onnadi3_> Have you guys made a decision on TagSea?
<lemmy> the decision is yours to make. :)
<onnadi3_> cool. I vote that we use Javadoc and if you guys find my commenting illegible, then perhaps we can move on to TagSea...
<lemmy> fine
* rcjsuen__ ( has joined #eclipse-soc
<onnadi3_> Next up, "- QA/Testing (Unit/FIT)"
<onnadi3_> What does FIT mean?
<lemmy> functional tests
<onnadi3_> howzat different from unit tests?
<lemmy> It is. You might wanna read up on that one. :)
<lemmy> Lets reschedule this one for next week too. My head is empty atm.
<onnadi3_> Alright
<lemmy> I'll go for some R&R soon. Maybe have a nice cocktail too. ;)
<onnadi3_> lemmy: Could you just explain what "    - IRC presence (bouncer/proxy)" this is so we know whether to shelve it too?
<lemmy> It's this IRC proxy thingy we've already talked about.
<onnadi3_> (Ah...that's why you want to move everything to next week ;) )
<onnadi3_> oh OK
<lemmy> One reason, also because my battery is nearly depleted.
<lemmy> Good night everybody
<onnadi3_> okey-dokey. Could you please send th eupdated logs

31 May 2007

The first review of my submitted code. This was also where the name org.eclipse.discovery was decided.

onnadi3>	lemmy: you want me to walk you through my code?
	<lemmy>	a second
	<onnadi3>	alrighty
	<lemmy>	I see that you use Java5...
	<rcjsuen>	AhtiK: no no no, don't worry about what's in eclipse-incub
	<onnadi3>	yeah. Doesn't everyone? :-)
	|<--	AhtiK has left freenode ("Ex-Chat")
	<lemmy>	rcjsuen: Do you want to talk about EEs?
	<lemmy>	And foundation
	-->|	AhtiK (n=ahtik@ has joined #eclipse-soc
	<rcjsuen>	yes, I do
	<rcjsuen>	I care about EEs because I do a lil' eRCP hack-age
	<rcjsuen>	onnadi3: So do you know what Execution Environments are?
	<rcjsuen>	onnadi3: And actually, most of Eclipse is still written with pre-1.5 APIs.
	<rcjsuen>	onnadi3:
	<onnadi3>	uh...not really
	<AhtiK>	what's the onnadi3 project?
	<AhtiK>	there are eclipse projects that REQUIRE java5
	<AhtiK>	at
	<rcjsuen>	AhtiK: yes, that's correct
	<rcjsuen>	and i think apt has JavaSE-1.6 requirements
	<onnadi3>	AhtiK: its eclipse-autoconf in CVS
	<rcjsuen>	onnadi3: Basically, it's a constraint at the plug-in level to mandate the APIs that can be used.
	<rcjsuen>	Although this isn't forced directly, although you can set incompatible EEs as warnings.
	<rcjsuen>	Equinox (or maybe OSGi in general?) will read a plug-in's Execution Environment and determine whether it can be started or not if it needs to be started.
	<rcjsuen>	So if I only have J2SE-1.4 installed, it reads a J2SE-1.5 EE in some MANIFEST.MF
	<rcjsuen>	That plug-in will NOT be started.
	<rcjsuen>	This saves us from weird problems like NoClassDefFoudnError
	<onnadi3>	Ah. So I should write my code in Java1.4 style, right?
	<rcjsuen>	or that minor/major version issue
	<rcjsuen>	Actually, we are considering making it even smaller
	<rcjsuen>	So that it can be used in the embedded space
	<rcjsuen>	So this would be a CDC-1.0/Foundation-1.0 profile.
	<AhtiK>	rcjsuen: ahh ok, Now I see what you meant by bad example. true, we discovered already last year that every project should have just ONE directory instead of these three I made :) these should have been under wordwrap dir..
	<rcjsuen>	A lot of Eclipse plug-ins are actually at that level.
	<rcjsuen>	AhtiK: ;)
	<AhtiK>	we didn't care to clean up because moved to soc.e.o, if I remember correctly :)
	<onnadi3>	rcjsuen: Huh. Is there a way to get eclipse to flag code that I write that is not in a particular EE?
	<rcjsuen>	yeah, I think so
	<rcjsuen>	I am not aware of this feature.
	<onnadi3>	I'm not sure I can tell what differentaites Java 1.3 from 1.4
	<rcjsuen>	you get warnings if the jre isn't the right match
	<rcjsuen>	That's why you install a smaller JRE on your computer and use that for your project
	<rcjsuen>	is how that would work
	<rcjsuen>	to prevent you from using 1.5 APIs or 1.4 APIs or whatever
	<onnadi3>	aaaaah
	<rcjsuen>	lemmy: so we do want to set a low constraint of f-1.0?
	<lemmy>	Do you see a reason to use a higher level? I don't
	<onnadi3>	:-O 1.0!!
	<onnadi3>	That's old school. This will be fun
	<lemmy>	We can always move upwards
	<rcjsuen>	onnadi3: CDC-1.0/Foundation-1.0 is a subset of J2SE-1.3.
	<rcjsuen>	lemmy: that's correct
	<rcjsuen>	~wiki J9
	<KOS-MOS>	Check out this wiki article -
	<rcjsuen>	With F-1.0, you lose things like
	<rcjsuen>	URI
	<rcjsuen>	and String's split method
	<rcjsuen>	and Exception chaining
	<rcjsuen>	but you'll probably extend CoreException
	<rcjsuen>	so don't worry about that latter bit
	<onnadi3>	Could you please explain Exception chaining?
	<rcjsuen>	you know like
	<rcjsuen>	throw new IOException(e);
	<rcjsuen>	rather
	<rcjsuen>	you catch an IOException
	<rcjsuen>	then throw a more specific one to yours
	<rcjsuen>	throw new MyNewException(e);
	<rcjsuen>	the concept of passing an Exception (or Throwable I guess?) to another one so that it keeps chaining/propgating is introduced in 1.4
	<rcjsuen>	but anyway, with CoreException don't worry about it, same thing
	<rcjsuen>	we did the same thing with ECF
	<rcjsuen>	had ECFException extend CoreException instead of Exception
	<lemmy>	onnadi3: a reason to use foundation 1.0 is because provisioning seems to be interested in using autoconf.
	<rcjsuen>	lemmy: lol, good call
	<rcjsuen>	i totally jus tforgot about that and just explained EEs ;p
	<rcjsuen>	sorry ;(
	<onnadi3>	who's provisioning?
	<rcjsuen>	Provisioning is an incubator project for Equinox.
	<lemmy>	Remy: that's what makes a good team. ;)
	<lemmy>	onnadi3: being utilized by provisioning is something to feel proud about.
	<lemmy>	;)
	<onnadi3>	Alright! Just one week on the job and the higher-ups are already taking notice :-)
	<rcjsuen>	^about J9, you will download J9 as your JRE
	<onnadi3>	rcjsuen: OK. Is that what you use to do Eclipse dev?
	<rcjsuen>	yes, i have that installed on my machine for working with ecf and ercp
	<AhtiK>	come on guys :P don't you want to use normal programming constructs like generics and enums?:)
	<lemmy>	onnadi3: two more things besides the EE. We should create a CVS structure much like ecf-bittorrent and your projects/plugins should start with org.eclipse.
	<lemmy>	This also applies for plugin names
	<onnadi3>	I'm checking out ecf.bittorrent right now
	<lemmy>	package structure inside the plug-in should follow the name of the plug-in or the other way around. bottom line, they should be aligned.
	<onnadi3>	Very nice. So is it okay to use org.eclipse.autoconf or should we get a better name?
	-->|	pombreda ( has joined #eclipse-soc
	<lemmy>	One last thing... classes which are not supposed to be used by other plug-ins are to be "locked away" in the *.internal.* name space
	<lemmy>	onnadi3: do we have a better name yet
	<onnadi3>	lemmy: ach. How do I place things in the "internal" namespace?
	<lemmy>	org.eclipse.discovery?
	<lemmy>	onnadi3: it's as regular package. :)
	<onnadi3>	So, all private classes should be placed in the org.eclipse.internal package?
	<lemmy>	Actually it isn't official JAVA standard although people have started to talk about the inclusion. Something like an access modifier for projects.
	<lemmy>	org.eclipse.autoconf.internal
	<onnadi3>	lemmy: (I like org.eclipse.discovery. What do you think rcjsuen?)
	<rcjsuen>	discovery works
	<rcjsuen>	where's that doc on the wiki
	<rcjsuen>	onnadi3:
	<lemmy>	as long as we ain't be sued by discovery channel. ;o
	<onnadi3>	I'm so going to make a discoverer for a "Channel" plugin so I can have
	<lemmy>	In Germany the former federal telecommunication company tried to get a trademark on the "T".
	<onnadi3>	Holy moley! All this documentation. I'm gonna be reading the Eclipse wiki all weekend :-)
	|<--	slewis2 has left freenode (Read error: 110 (Connection timed out))
	<lemmy>	Last but not least... IMO we should target Eclipse 3.3 instead of 3.2
	<onnadi3>	lemmy: were they allowed to copyright, "T"?
	<lemmy>	onnadi3: AFAIK it was denied. :)
	<onnadi3>	Huh? Shouldn't it be Eclipse 3.1 or lower?
	<ijuma>	or lower?
	<ijuma>	that would be quite nasty ;)
	<lemmy>	< 3.1 makes nearly no sense. It isn't based on OSGi
	<onnadi3>	Oh. I thought it was a general principle to allow as many Eclipses to use a plugin as possible
	<lemmy>	Let me elaborate on this one. for org.eclipse.discovery.jdt we should target 3.3 whereas for org.eclipse.discovery itself, we should try to keep our dependencies as minimal as possible. If possible just org.osgi.
	<rcjsuen>	lemmy: 3.0 is OSGi no?
	<rcjsuen>	but technically if provisioning wants this, 3.3 is no biggie
	<lemmy>	rcjsuen: IIRC 3.1 has been the first OSGi based version, though they started porting with 3.0
	<rcjsuen>	o
	<rcjsuen>	I tried writing 3.0 plug-ins using 3.2
	<rcjsuen>	wow, that was painful
	<lemmy>	software history :)
	<rcjsuen>	I think I ended up coding in 3.0 instead
	<lemmy>	which is also painful.
	<onnadi3>	How exactly would I target Eclipse 3.3? Simply setting the minimum version to 3.3 in org.eclipse.discovery.jdt?
	<rcjsuen>	You'd just use 3.3 as your target platform in the pde prefs
	<onnadi3>	OK
	<onnadi3>	I think I got it. Code in Java1.0. Set org.eclipse.dioscovery's min version to 3.1, and set org.eclipse.discovery.jdt's min version to 3.3
	<rcjsuen>	Well, you're not actually using Java 1.0.
	<rcjsuen>	Believe me it's not as painful as it sounds. CDC-1.0/Foundation-1.0 is pretty big imo.
	-->|	soulreaper ( has joined #eclipse-soc
	|<--	jburd has left freenode (Read error: 60 (Operation timed out))
	<onnadi3>	uh. Sorry if I missed it earlier but what is "CDC-1.0/Foundation-1.0"? Is it provisioning?
	<lemmy>	onnadi3: for org.eclipse.discovery.drools (name will probably differ), we will probably need a different EE anyway.
	<rcjsuen>	onnadi3: that's the name of the execution environment
	<rcjsuen>	This is what 1.1 looks like
	<rcjsuen>	I could never find 1.0, it's stupid.
	<onnadi3>	Ah. Aaaah. Bytecode. It all makes sense
	<onnadi3>	CDC is just a set of classes that I should use instead of those in J2SE v.5
	<onnadi3>	Alright. I'm glad we cleared this all up.
	-->|	benny`work (n=benny@eclipse/developer/Technology/bennywork) has joined #eclipse-soc
	<lemmy>	Nothing left for Saturday. ;)
	<lemmy>	Hi Benny
	<onnadi3>	:-)
	<rcjsuen>	lemmy: ;)
	<benny`work>	hi lemmy
	<onnadi3>	lemmy, rcjsuen: have you looked at the plugin.xml files? Is there anything I'm obviously missing?
	<rcjsuen>	i haven't had a chance, this project at work is taking up most/all of my time
	<rcjsuen>	onnadi3: In the Overview tab you can specify your execution environment tho
	<rcjsuen>	by can i mean you _ should_ ;)
	<rcjsuen>	whenever i see ppl that don't use EEs, I file them a bug right away
	<onnadi3>	Rcjsuen: Oh yeah. Sorry. I forgot you're at work
	<rcjsuen>	well, Markus goes to work too ;)
	<onnadi3>	But he's at home now...aren't you Markus?
	<lemmy>	Remy hopes to get the EE-police award next year at EclipseCon. %)
	<onnadi3>	hahahaha
	<lemmy>	Actually I'm already lying in bed.
	<rcjsuen>	I rarely use my notebook on a bed
	<rcjsuen>	always the table
	<lemmy>	Don't worry, I'm not naked.
	<onnadi3>	hahahahhahaaha
	<onnadi3>	Well, I think making all the changes you guys recommended will take up a lot of time already. Plus, I gotta read all the standards docs
	<lemmy>	hmm, org.osgi for org.eclipse.discovery would rule out extension points
	<ijuma>	ok, so there are 2 things rcjsuen feels strongly about, EE and bandwidth
	<rcjsuen>	ijuma: quite so
	<onnadi3>	lemmy: how so?
	<lemmy>	onnadi3: better do it early. with each new line of code it gets more painful.
	<onnadi3>	lemmy: I meant, what did your statement mean? Am I going to be importing any org.osgi stuff?
	<onnadi3>	Right now my plugin just depends on Eclipse
	<lemmy>	onnadi3: org.eclipse.core.runtime
	<lemmy>	You're importing org.osgi indirectly already.
	<rcjsuen>	does it depend on runtime?
	<rcjsuen>	i mean using extensions
	<lemmy>	AFAIK it does.
	<onnadi3>	Uh...yeah. It uses extension points
	<lemmy>	Platform.getExtensionRegistry()
	<rcjsuen>	don't have to do that
	<rcjsuen>	can use services
	<lemmy>	That's my point
	<rcjsuen>	i mean
	<rcjsuen>	don't have to depend on runtime
	<rcjsuen>	can get extension registry without using Platform
	<lemmy>	though services are kind of unusual for high level plug-ins like JDT.
	<rcjsuen>	yeah
	<lemmy>	I guess it all depends on how much we are willing to go into the direction of provisioning.
	<onnadi3>	Whew. I'm a little confused here. lemmy: does the "Developing Eclipse plug-ins" book talk about the difference between the two? I have a copy arriving from Amazon
	<lemmy>	Going down that road doesn't mean we will loose JDT or CDT. It only makes it slightly harder.
	<lemmy>	onnadi3: I don't know the TOC out of my head. Maybe it doesn't but there is enough of good doc out there.
	<lemmy>	The amount of reading material must be frightening. :o
	<onnadi3>	Oh! Oh!! I get it. Eclipse uses OSGi
	<lemmy>	:)
	<onnadi3>	It all makes sense!!
	<onnadi3>	But wait! Why should we use org.osgi?
	<onnadi3>	Is it just for org.eclipse.discovery.jdt?
	<lemmy>	org.eclipse.discovery should have minimal dependencies, which means ideally it would depend only on org.osgi.
	<onnadi3>	Gotcha
	<ijuma>	when I read that article a while ago, it seemed to me that osgi services on their own are a bit of a pain. DS makes them nicer, but with the possibility of spring-osgi becoming part of the standard there's a bit of uncertainty
	<lemmy>	org.eclipse.discovery.jdt acts as the connector between the "high level" JDT (org.eclipse...) and the low level org.osgi.
	<onnadi3>	Hmm, so on a previous point, that means that I can use enums and iterators in my code as long as all the classes involved can be found in CD1.0, right?
	<lemmy>	ijuma: haven't used DS yet. My main concern with Extension points is, that they don't have versions and that a plug-in defining an extension points is a singleton.
	<ijuma>	right
	<lemmy>	who needs 1.5 enums anyway? just syntactical sugar.
	<lemmy>	And I'm definitely not talking about "public static final int..." This topic is my EE. ;)
	<onnadi3>	Well, I don't use them personally, but what I meant to ask is, the syntactical sugar is just that, right? I could use it or not even with J9, right?
	<lemmy>	CDC-1.0/Foundation-1.0 source: 1.3 target: 1.1
	<onnadi3>	I get it now. So I can use all syntax up to 1.3. Good

28 May 2007

Conversation b/w lemmy and LeNettoyeur on some architectural issues.

<LeNettoyeur> well it seems that you went of a path where plugins like JDT, CDT, etc would have to be modified
<lemmy> true
<lemmy> Actually I would prefer not to change existing code but I don't see a way to avoid it.
<LeNettoyeur> I believe that the auto conf plug-in should provide a headless discovery facilities
<lemmy> I totally agree with headless
<LeNettoyeur> this plug-in would then have extension, contributed by jdt and the others
<LeNettoyeur> and these jdt.autoconf would know which value to set into jdt prefs (or whatever other mechanism)
<LeNettoyeur> so you end up with 3 plugins.
<LeNettoyeur> org.eclipse.autoconf provides basic infrastructure for discovery and has an extension point
<LeNettoyeur> org.eclipse.jdt... stays unchanged
<LeNettoyeur> org.eclipse.jdt.autoconf (depends on org.eclipse.autoconf) registers an extension to the autoconf extension point to describe the rules. The execution of an autoconf query returns values that are then being injected into the proper prefs
<LeNettoyeur> This last plugin may have an optional dependency on UI to contribute a pref page.
<lemmy> If the consumer obtains information via some other API call, we would miss it.
<LeNettoyeur> if they are stored in a pref, the jdt.autonf should store it there, if it is from a config file somewhere else, it should be in it
<lemmy> in the long run however, I see the ownership of jdt.autoconf at the jdt.
<LeNettoyeur> I Agree and this is why I think you can rely on prefs and other internal formats
 of JDT
<lemmy> the only problem i see is, if jdt.autoconf doesn't get accepted by JDT. but it's still better than having a bunch of patches.
<LeNettoyeur> Another scary thing "rediscover the JREs whenever a project is being created"... This is scary because if you browse the file system everytime.
<lemmy> rediscovery is indeed something that should only be done on demand. we are aware of the problem that it might require a lot of resources. 
<LeNettoyeur> If you look at mylar that's how it works. Reach into the guts of controls... it does not use APIs.
<lemmy> another thing we're currently thinking about is if we go and try to validate our findings. it definitely raises security concerns.
<lemmy> Suppose someone want's us to discover javac. We might find a binary called javac. But do you really want to execute it with something like "javac -version".
<LeNettoyeur> This decision should be left to the user
<LeNettoyeur> and the rules should be splitted such that there is a purely static discovery where no discovered code is ran
<LeNettoyeur> and another part which is more "validation" of the discovered pieces
<lemmy> either that or some kind of verification that doesn't come with a security problem. something like a checksum for a given bin might work, but probably adds to much of maintenance.
<lemmy> yep, validation is something optional.
<LeNettoyeur> I see checksum as just another way to discover
<lemmy> good point
<LeNettoyeur> and if it is the way that one has decided to identify its thing then that's it
<lemmy> which is definitely a good example why discovery shouldn't happen each time a project gets created.
<lemmy> nobody know how expensive those rules can get.
<lemmy> very valuable input, thx. :)

26 May 2007

<onnadi3> Two things:
<lemmy> unfortunately I had no time to send out an agenda.
<onnadi3> 1. Weekly meeting times
<onnadi3> 2. Agenda for this coming month, or at least the next few weeks
<onnadi3> 3. Perhaps all get on the same page about hte project's objective
<onnadi3> (that's not 3, I know :-) )
<rcjsuen> I'm not sure when Philippe will send out an email for weekly meetings.
<rcjsuen> Since the program starts on Monday is it?
<onnadi3> yup
<lemmy> About 1. I'll be back in Germany 11th of June which should
allow us for more flexible meeting times.
<rcjsuen> I can't do weekday meetings since I have a full-time (internship) job.
<lemmy> I'm rather busy through the week myself and would prefer
meetings on the weekend too.
<onnadi3> Alright. Should we perhaps stick with this time until we
find a better time?
<rcjsuen> Saturday mornings are no problem with me.
<lemmy> Sounds like a plan to me.
<onnadi3> Alrighty! Next up,  2. Agenda for this coming month,
<lemmy> We definitely need to setup SCM.
<lemmy> onnadi3: Have you started the Eclipse IP process already?
<onnadi3> I thought, the eclipse-dev folks were going to send out an
e-mail to all of us en masse
<lemmy> Lets check the soc bug again...
<rcjsuen> wizEpit: Hi wizEpit, don't think I've seen you around, are
you a student?
<rcjsuen> yeah, It's been a while, I don't really remember the details
<rcjsuen> Can always just use SF for now.
<rcjsuen> we all did so last yr anyway ;p
<lemmy> We should get the process started anyway. Don't you agree that
the code might end up in Eclipse?
<onnadi3> Yes yes yes
<rcjsuen> I'm not sure which project would consume it though.
<lemmy> It will be easier if the code is already at i guess.
<lemmy> Do you have a SF id ogechi?
<rcjsuen> lemmy: Right
<rcjsuen> I think I added him already
<onnadi3> No. But I have a google id and I have used Google's project
hosting before
<onnadi3> Its really easy
<rcjsuen> okay i guess not the n;p
<lemmy> I would prefer to use SF. Eclipse GSoC has a project set up already.
<lemmy> And GSoC doesn't require us to use their facilities.
<onnadi3> lemmy: so all the past GSoC projects are held in SF under
one source tree?
<rcjsuen> not "all"
<rcjsuen> some...didn't ;p
<rcjsuen> by some i mean lots
<onnadi3> :-)
<rcjsuen> I don't know how strict pombreda is going to be this year though ;)
<rcjsuen> It's just easier for the populace to find GSOC code.
<rcjsuen> If they're all in one place, naturally.
<onnadi3> OK. THat makes sense.
<onnadi3> So once I get an SF id, I can e-mail rcjsuen to get added to
the incub project?
<lemmy> you can email either remy or me.
<lemmy> or both of us and see who acts fiirst. ;)
<rcjsuen> We all have admin rights actually.
<rcjsuen> You can just speak up here.
<rcjsuen> Someone with free time will do it.
<lemmy> What about CVS vs SVN?
<onnadi3> SVN, unless someones has a strong opposition to it...
<rcjsuen> You're supposed to use CVS.
<rcjsuen> lol
<onnadi3> oops
<lemmy> Says pombreda ?
<rcjsuen> Says pombreda alright.
<lemmy> offers SVN, so does SF.
<onnadi3> I thought so , too
<rcjsuen> We picked CVS because of the lower barrier of entry.
<rcjsuen> That was my vote +1 for CVS.
<rcjsuen> Even though I would gladly -infinity to CVS.
<lemmy> Barrier for who?
<rcjsuen> Since I can't stand 1.x version numbers.
<rcjsuen> lemmy: Fora nyone
<lemmy> I'm fine with both and with pombreda  opting for CVS lets use CVS then.
<onnadi3> <sigh> CVS it is, I guess  :-)
<rcjsuen> Sorry
<lemmy> rcjsuen: No need to be sorry. CVS is fine for us.
<onnadi3> Except for creating directories *ahem*
<onnadi3> :-)
<lemmy> Who cares if a file history is broken. ;)
<onnadi3> :-)
<onnadi3> Well, now that that is settled, should we move into my goals
for the next meeting?
<lemmy> sure
<rcjsuen> sounds good
<onnadi3> I was thinking I'd draw out different scenarios in which the
plugin would be used
<onnadi3> e.g.
<onnadi3> 1. Let's say you dl the autoconf plugin then download the
C++ plugin, the autoconf plugin will automatically determine what the
C++ plugin needs and try to find them
<lemmy> onnadi3: the autoconf plugin refers to your plugin?
<onnadi3> Yeah
<lemmy> do you want the autoconf plugin to know about cdt?
<rcjsuen> That'd require some identical plug-in ID + version magic
<onnadi3> Well, I think it would be beneficial, from the user
standpoint, to have the autoconf plugin keep as large a db as feasible
of plugins and their requirements
<lemmy> actually I don't think autoconf should know about it consumers.
<onnadi3> that way, it looks like magic to the user
<onnadi3> Of course, we would also want to provide an API for the
autconf plugin so that newer plugins can make their requirements
<lemmy> IMO autoconf should only provide the framework to discover
"services".  consumers then provide autoconf with rules to discover
actual servies.
<rcjsuen> It'd be tough to maintain since I'm assuming those plug-ins
mark a lot of preferences stuff as internal.
<lemmy> remy: that's why i don't like the idea of shipping discovery
rules with autoconf
<lemmy> btw. autoconf is a working title? ;)
<rcjsuen> I guess
<onnadi3> Sounds fine to me :)
<onnadi3> Hmm, of course our main aim won't be collating all the
requirements for every single plugin, but I think it would be useful
to allow the capability so that  the more common older plugins are
<lemmy> sure, provide a few exemplary rules like jdk, gcc, ... but
nothing specific.
<lemmy> It's a nice vision to allow for older plug-ins to benefit from
autoconf though.
<onnadi3> So, should we go through the other scenarios now or is that
something I should flesh out more during the week?
<lemmy> tbh lets try to get a strong and fairly generic framework
running before we concentrate on creating a big database.
<rcjsuen> Agreed.
<onnadi3> Agreed
<lemmy> A database is something that could live from contributions.
<rcjsuen> Very true, services / extensions.
<onnadi3> So another scenario would be when the C++ plugin has already
been installed and then the autoconf plugin is installed afterwards
<onnadi3> In that case, the user would have to click a button or
something to request that the C++ requirements be found
<onnadi3> I could do sketches of what this would look like during the week
<rcjsuen> yes, that seems reasonable
<rcjsuen> like if they installed a new JRE and it's the new JAVA_HOME
<rcjsuen> could possibly update that or whatever
<lemmy> It seems if I have a slightly different vision for autoconf. I
see it more like a fundamental service without a real UI.
<onnadi3> ah
<onnadi3> So perhaps we should focus on the service first, and then if
there's any time left, work on prettifying?
<rcjsuen> lemmy: You mean someone else will code the UI?
<lemmy> rcjsuen: I don't see the need for a UI.
<lemmy> CDT and JDT will use the autoconf facilities to discover their
<lemmy> We could provide patches for CDT and JDT.
<rcjsuen> If there's no UI then the user cannot intervene with the
<lemmy> Basically CDT and JDT use OSGi preference service to obtain a
service by some identifier. autoconf takes care of filling up the
preference. either at startup or on demand.
<lemmy> rcjsuen: since we can't be sure of the result of autoconf
anyway, a user will always have to verify the results.
<rcjsuen> That's true.
<lemmy> Something like: A new JAVA project gets created. JDT asks
preference for JDK, autoconf tries to discover JDK. JDT shows the
rules to the user in the project creation wizard.
<rcjsuen> Sounds reasonable.
<lemmy> One thing is missing in this however.
<onnadi3> Shouldn't it be: JDT is installed. autoconf discovers JDK.
JDT then shows the rules to the user during the installation process
<lemmy> Who provides the discovery rule. I think those should also
come from JDT.
<onnadi3> I'd originally thought this could be done by the community
as well, but I think that raises security concenrs
<lemmy> Generally speaking a consumer configures autoconf to discover
a given service id by a given rule.
<lemmy> onnadi3: About which installation process  are you talking?
<onnadi3> the plugin "installation" process
<lemmy> onnadi3: I wouldn't care so much for the installation of JDT
or CDT. Discovering a certain service is something which is needed
when a new project gets created...
<onnadi3> lemmy: But won't the same rule suffice for any other Java
project (in the case of JDT)?
<lemmy> I don't get the question, sorry.
<onnadi3> So if you discovered, say, the JDK while starting one Java
project. Won't that same JDK suffice for any other Java project that
you start?
<lemmy> each project can depend on a different jdk.
<onnadi3> I see
<rcjsuen> yeah, there's a workspace setting, but projects can also
pick their own
<onnadi3> It just seems to me like it would be annoying to have to
have to select a JDK for every project since (I'm guessing) most
times, you'd want to use the same JDK
<onnadi3> However, you have an excellent point that people mihgt need
per project settings and so we need to provide that functionality
<lemmy> onnadi3: normally you manually add several jdks to your
workspace. each time you create a new project in that workspace, you
get to choose from that list.
<rcjsuen> Depends on the projects, PDEs have the Execution Environment concept.
<lemmy> true
<lemmy> but it's just another layer on top of jdks.
* lemmy feels the need for a whiteboard
<onnadi3> Ah. I think lemmy is right in that the autoconfplugin finds
all JDKs every time a  new project is started (in case a new one was
installed since the last autodetect) and then the user has the choice
of picking a JDK from a list or using the default
<lemmy> onnadi3: Discovery could either be triggered from the new
project wizard or in the workspace wide "installed jdks" preference
<rcjsuen> yeah
<rcjsuen> I guess wherever it has some kinda Viewer that calls like
<lemmy> This pretty much applies to CDT, PDT,...
<rcjsuen> it should do a rediscover
<lemmy> getInstalledJREs(boolean rediscover) ;)
<lemmy> discovery might be expensive
<onnadi3> yup
<lemmy> Unfortunately I don't see a way around touching JDT/CDT/... code.
<lemmy> Except maybe with some AOP magic.
<onnadi3> And, for instance, in the Ruby plugin, you don't have the
option of choosing runtimes. So if autodiscovery takes even a few
extra seconds, folk might get pissed off that this autocofn plugin is
slowin g their  Eclipse
<lemmy> But I don't think we should go that road. It would rely on
internal stuff.
<lemmy> +down
<rcjsuen> yeah
<lemmy> Thinking about it... I guess its more like
getService(DiscoveryRule rule, ServiceID id)
<lemmy> and getService(ServiceID id)
<onnadi3> So for now, we stick with the original plan of filling a
table of services and then slowly converting other plugins to use the
autoconf API
<onnadi3> ?
<lemmy> onnadi3: I guess for the moment converting means providing patches.
<rcjsuen> heheh
<lemmy> But why not, that's the usual way anyway.
<onnadi3> yup. Unless the plugins allow their prefs to be publicly written
<onnadi3> But I don't know if lossa plugins do that
<lemmy> We would provide patches for the big players like JDT and CDT.
Others will write their own patches later.
<onnadi3> or if its good form anyway
<onnadi3> okay
<lemmy> onnadi3: you can't even be sure that plug-ins store their
prefs with the normal preference API.
<onnadi3> true that
<lemmy> Overwriting those "tables" would definitely mean accessing internal API.
<onnadi3> So it will have to be by patching the plugins themselves
<onnadi3> Which, hopefully, won't be immensely difficult :-)
<lemmy> onnadi3: Its tedious work anyway. Just adding a couple of
buttons and some calls to the autoconf api.
<onnadi3> Hmm, so maybe for our next meeting, I should make a skeleton
plugin and define the API?
<lemmy> I find it far more interesting designing the a generic discovery engine.
<onnadi3> Or I coul dinstead work on defining rules in DRools to see
how it works...
<lemmy> It would start with drools to get a feeling how the external
API needs to look like.
<onnadi3> lemmy: do you mean, designing the heuristics that will find
any binary given an ID or name? (per your previous comment)
<lemmy> Start with something simple. A list of possible locations for a JDK.
<onnadi3> Ah OK. So it comes down to:
<onnadi3> 1. Play with Drools and see how it works
<zx> the EE concept was moved to JDT remmy, no longer in PDE
<onnadi3> 2. Write heuristics for finding where the JDK lives ina system
<rcjsuen> zx: one less thing for you to worry about?
<lemmy> Familiarize yourself with PDE. Create the initial plug-in. Get
a working environment. :)
<rcjsuen> zx: you need to use like 'update classpath' to stop those
annoying warnings though
<onnadi3> lemmy: what do you mean by working environment?
<rcjsuen> get Eclipse setup and all that good stuff
<lemmy> zx: why not downwards in the direction of OSGi?
<zx> lemmy, well, EE is in the spec
<rcjsuen> lemmy: an interesting proposition
<zx> JDT provides the tooling around EE
<lemmy> onnadi3: configure your Eclipse for plug-in development...
<onnadi3> okey-dokey
<zx> need to start packing for my flight that leaves in 6 hours
<onnadi3> lemmy, rcjsuen: Whew! I think we got quite a bit hashed out
today.  Thanks for your great ideas
<lemmy> If there is a compilable plug-in in the cvs repository next
Saturday that takes a collection of possible fs locations and returns
a collection of jdks...
<onnadi3> lemmy: gotcha :-)
<lemmy> No need for fancy API or UI yet. JUnit tests do great.
<rcjsuen> yay unit tests :)
<lemmy> And it's ok if they fail :)
<rcjsuen> So true.
<onnadi3> hahaha I'll make a few fail just for you :-)
<lemmy> which reminds me. I missed Wayne's test driven webcast.
<lemmy> Fortunately it's recorded somewhere. :)
<lemmy> onnadi3: are you fine with it if i send this chat log to the
soc-dev mailing list, so others get to know what we're up to?
<onnadi3> I'm all for it. Let 'em know we been working hard ;-)

15 May 2007

Gmail chat

10:41 AM markus: Hi
 me: Hello, Markus
 markus: How are you?
 me: I'm fine, thank you
  You still in India, I see
10:42 AM markus: Yep, I am, but only for another month.
10:43 AM Beginning with June it will be easier to schedule meetings.
 me: Excellent
10:44 AM markus: I'll log this session so Remy gets to know what we decided.
 me: Alrighty
  So, the main things I wanted to know were
10:45 AM 1) Shall we stick to the scope of the project as somewhat defined on the wiki? and
  2) Where can I find good free Eclipse learning material?
10:46 AM markus: Remy brought up the idea to prefer CDT use cases since those fall into the area where we get the most questions in newsgroups and irc.
10:47 AM me: Ah. Good choice
10:48 AM markus: But once you got discovery in the local file system working, discovery of jdk or php shouldn only be a matter of adding just another "rule".
 me: Yup
10:49 AM BTW, for CDT we'd need to discover things like the compiler, Make, maybe subversion or CVS etc.?
 markus: GCC, any other compiler...
10:50 AM With GCC being the test case?
 me: test case? Do you mean starting point?
 markus: Basically it comes down to discovering a binary in the local fs and making sure it's the right one.
 me: Yeah
10:51 AM markus: by generically specifying discovery heuristics.
10:52 AM Do you have an idea on how to verify that it's indeed the correct binary? Just calling the bin might be dangerous.
10:53 AM me: That's a good point. Hadn't thought about malicious bins
 markus: Might also be slightly expensive to call several binaries.
 me: I'm thinking... :)
  What do you mean expensive?
10:54 AM markus: performance
10:55 AM something like "aBinary --version" shouldn't be too expensive but we can't be sure of the side effects.
  On the other hand using something like a checksum might be too strict and I don't know of a fuzzy checksum. ;o
10:56 AM me: 1 possibility, which isn't very flexible, would be to rely on the registry or environment variables
  But of course sometimes, the program isn't registered
10:57 AM markus: This would require the user to setup the environment or the tool to register appropriately.
  But the environment, registry,... could still be used to gather knowledge about the system.
10:58 AM me: I understand the danger of calling random binaries but perhaps its not so much of a problem since other programs out there do it all time when they "auto-detect" the location of your JDK or some other program
11:00 AM markus: Well, lets leave the verification open for the moment but lets not forget about it either.
11:01 AM me: Yeah. That was a very good point you brought up
11:02 AM markus: In regards of free documentation for eclipse
help system
11:03 AM I found to be very helpful too.
  You might find it in a library.
  Otherwise those $43 are worth it.
11:04 AM me: ah. I'll check out the articles first and then probably pick up the book too.
  Someone else blogged about using that same book
11:05 AM markus: I think it's the most comprehensive book on plug-in development.
  Though with 3.3 it is slightly outdated, but not much.
11:06 AM me: okey-doke
 markus: Have you thought about a way to describe the heuristics?
11:07 AM me: I've been reading about Drools and it seems like it might save me from having to invent a mini-language for heuristics
11:08 AM markus: Great you picked the idea up. :)
 me: :) yup
  It sounded like you'd worked on it a bit
11:09 AM howdja get into it?
 markus: I read a thesis about rules engines and drools in particular.
  And I can contact the author if necessary.
11:10 AM me: oh wow. What was the thesis about?
 markus: using rules engines for implementing business logic in applications.
  unfortunately its written in german.
11:11 AM me: ah...
  I gotta hurry up on them Lektions :)
11:12 AM markus: Next Saturday you won't be in town?
  But the one thereafter?!
11:13 AM me: Yeah
  I think I'll have access to internet where I'm going
  (I'll be at a graduation which is onthe Monday after)
11:14 AM markus: But it isn't your graduation, is it?
 me: Oh no no no
 markus: otherwise you might face problems with payment. ;)
11:16 AM me: <sigh> I'd love to meet then but I won't even know where I might end up that Saturday (since Friday will be a big party for all the graduates and their friends)
  (and I might not be sober by then :) )
 markus: I guess i understand. ;)
11:17 AM me: So for now, I guess the project can be condensed to:
  An implementation of a rule engine for detectin binaries on an FS
11:18 AM markus: With the detection part being as generic as possible so it won't be hard to extend it beyond the local fs.
 me: yup
11:19 AM markus: So more like: A framework based on a rules engine to detect "services" with an exemplary local fs implementation.
11:20 AM me: Ah yes. I like that :)
 markus: Btw any news in regards to the paperwork?
 me: No. I sent mine in yesterday, though
11:21 AM markus: The Google or the Eclipse ones?
 me: Could you please tell me where I can find the buttons that say whether they've been received?
  oh ah. um the google ones
11:22 AM markus: Tbh I don't know of any button. You might want to ask other students either on #eclipse-soc, or the official google ml.
  Might be best to sent a question to soc-dev. Other might search for the same button. ;)
11:23 AM me: True true. Although the topic was beaten to death a few weeks ago...while I wasn't looking for the button
  And so I didn't join it then
  I'm gonna be so hated :)
11:24 AM markus: I haven't seen anything on this topic on the soc-dev ml. %)
 me: oh. Sorry, I meant the Google ml
  You're right. I'm hitting up soc-dev
  BTW, should I put our chat logs on on the wiki?
11:25 AM markus: IRC or this one?
  IIRC for IRC the group agreed on not putting the up.
11:26 AM them
 me: Well, the IRC...and all the "official" meetings
  I thought it'd be nice to have em all in one place fore reference
 markus: Currently there is some discussion ongoing on how we wanna "monitor" the projects.
11:27 AM Either inside the wiki, the mailinglist or with bugs in bugzilla.
  Or even blog posts.
 me: About that, isn't monitoring projects via bugs kind of an abuse of the system?
11:28 AM I mean, isn't bugzilla meant for bugs?
  just wondering
 markus: The eclipse development process makes heavy use of bugzilla for all kind of issues so I don't think it would be a problem.
  chatlogs could go in as attachments.
11:29 AM me: OK
  So I guess the answer is to wait until y'all decide the means we should use to track our discussions, eh?
11:30 AM markus: I guess so
 me: 'key-doke
11:31 AM One last question:
  How do you manage to be so enthusiastic about Eclipse all the time?
  Whenever I talk to you or Remy, I just get all fired up with Eclipse-coding-passion
11:32 AM markus: Well, I spent nearly all day working with Eclipse. In the evening I'm not that enthusiastic anymore. ;)
  But working here in India is more exhausting than back home.

21 April 2007

*** onnadi3 [i=82cf935f@gateway/web/cgi-irc/] has joined #eclipse-soc
*** Topic is: SOC 2007 @ Eclipse is on! - Get help with ~help - List of accepted applications:  - Find information here: - Be patient and stick around for an answer - Subscribe to the mailinglist
*** Topic set by pombreda [Sun Apr 15 18:10:57 2007]
*** onnadi3 faern arhan pombred1 benny`patchslut rcjsuen kynes soulreaper lemmy Pookzilla zx KOS-MOS ijuma
*** Channel created on Sun Nov 26 00:42:43 2006
<onnadi3> rcjsuen, lemmy: sorry, people. I'd been waiting in #eclipse_soc ...
<rcjsuen> onnadi3: oh, sorry I was not clear
<lemmy> Hi Ogehi
<lemmy> +c
<onnadi3> Hello, Markus
<onnadi3> rcjsuen: nah, its my fault. I've been here before :-)
<onnadi3> What's been happening in SoC, today?
<lemmy> do we have a log?
<onnadi3> Ach, I'm using a web client that doesn't support logging...
<onnadi3> Can you log?
<lemmy> yep, i'll log our conversations.
<onnadi3> Good. Thanks
<onnadi3> rcjsuen, lemmy: Shall we get down to business?
<lemmy> later i'll try to setup logging which redirects to html.
<lemmy> onnadi3: sure :)
<rcjsuen> Yes, I'm here.
<onnadi3> Excellent!
<lemmy> remy: you got my email with the proposed agenda?
<onnadi3> Yup.
<rcjsuen> lemmy: yeah
<onnadi3> Quick question before we start: does Eclipse have a "find in files" function?
<rcjsuen> in my INBOX
<rcjsuen> too
<lemmy> ok, wasn't sure if it got caught in the spam filter again. %)
<rcjsuen> onnadi3: if you use the search it'll search all open projects, dunno about specifying specific files
<rcjsuen> lemmy: wel-, i am sure everyone is busy (except me), let's get started?
<onnadi3> rcjsuen: alrighty. Thanks
<onnadi3> Sure, let's start
<lemmy> do we consider the channel log our meetings minutes?
<onnadi3> Sounds fine
<rcjsuen> fine by me
<lemmy> has either of you anything to add to the agenda?
<onnadi3> Nope
<rcjsuen> seems ok
<rcjsuen> if something comes up i will say something
<lemmy> ok, so lets get started with "project documentation".
<lemmy> i guess the wiki is a good place to keep general text.
<lemmy> but what about diagrams and such, do we wanna use UML? do we need it?
<lemmy> Ogechi: are you familiar with UML?
<rcjsuen> I've never used UML outside of school, so I am fine if we don't use it
<rcjsuen> and that was for term
<onnadi3> lemmy: I know of it but haven't used it. It'll be useful if we get're building a boatload of classes
<onnadi3> lemmy: I think we should start with prose first and get into UML as the need arises
<lemmy> fine with me, lets try to limit the new things in this project.
<lemmy> s/things/technology
<rcjsuen> lemmy: agreed
<onnadi3> agreed
<lemmy> so for the project we will work with written text.
<onnadi3> For documentation, we'll basically need inline comments, and perhaps a "how to hack" document, right?
<onnadi3> lemmy: yup
<rcjsuen> yes, the atter is extremey important
<rcjsuen> there goes my keys again
<lemmy> what do you guys understand under a "how to hack"?
<rcjsuen> for there to be users, you need to have a good howto guide
<rcjsuen> because we are a-- -azy and woud rather not try to figure out how to use a too-
<onnadi3> "how-to-hack: A doc describing how a program was built to aid other developers in modifying it later"
<onnadi3> rcjsuen: been typing too long? ;-)
<rcjsuen> onnadi3: maybe, dunno, oh wel-
<lemmy> to me this sound a little bit too generic. i'd like to narrow it down, so we all expect the same from it.
<lemmy> i guess this tool isn't targetted on end users, hence an isv might be appropriate.
<rcjsuen> true
<onnadi3> what is an ISV?
<rcjsuen> embedded in ec-ipse -ike what p-atform does?
<rcjsuen> something software vendor i think it is
<rcjsuen> independent maybe
<onnadi3> For the "how to hack"  what I had in mind was something like the documentation for TeX: sthg. that describes data structures used and mnotivation for it. Is this still, too generic
<onnadi3> not in WEB, of course
<lemmy> maybe we should divide it. we need documentation for people working with the code base and also for people using the codebase.
<lemmy> for the latter the typical eclipse documentation for extensionpoints... would probably be the best. for the former i would choose uml. ;p
<onnadi3> lemmy: by, people using the codebase, do you mean end-users?
<lemmy> onnadi3: yep
<lemmy> but i suppose such end-users would be developer too.
<lemmy> +s
<onnadi3> Yeah, so the "how to hack" will be targetted to developers, and the end-user docs can ba called the user manual
<lemmy> makes sense to me
<onnadi3> (good point about needing separte docs)
<lemmy> anything to add in regards to doc?
<rcjsuen> newp
<onnadi3> The user manual will have the usual stuff like "how to install", how to use, how to uninstall etc. while the dev-docs will just describe how to extend the plugin etc.
<lemmy> since the code will be bundled as plug-ins, we won't need a install/uninstall doc. this is descibed in the osgi/eclipse documentation.
<lemmy> onnadi3: is this your first eclipse plug-in you write?
<onnadi3> ahem...yeah
<onnadi3> :-)
<lemmy> no problem :)
<rcjsuen> no worries, a lot of ppl last year never wrote a plug-in
<lemmy> onnadi3: do you have eclipse open atm?
<onnadi3> I'm opening it right now
<lemmy> ok, i'll grab a new cup of coffee.
<rcjsuen> That means he hasnt gone over to the dark side yet.
<onnadi3> oh boy... :-)
<lemmy> with the dark side being?
<onnadi3> BTW, (while eclipse loads) are we going to hashout all the details of what will be in the docs, or just the general plan?
<rcjsuen> if you have eclipse open all the time even when you don't really need it
<onnadi3> (Eclipse is up!)
<lemmy> for me the general plan is enough atm.
<onnadi3> okey-dokey
<rcjsuen> as the project (and its scope) is defined (and refined), the details will hash themselves out I think
<lemmy> i just want to make sure, we agree on the same thing. :)
<onnadi3> rcjsuen: glad to see the fire of your Eclipse youth is not out ;)
<onnadi3> lemmy: alrighty
<lemmy> onnadi3: if you open the help system, the "JDT plug-in developer guide" might be a good example of what i think would be good end-user doc.
<lemmy> certainly not that big though
<onnadi3> Ah. I see and understand
<onnadi3> That's some pretty documentation
<rcjsuen> imo one of the first things that should be done in the documentation phase is properly bui-ding a source plug-in + embedded docs as above
<lemmy> btw. suppose we're all happy with the outcome of the project at the end of summer, could you imagine to continue working on the project?
<onnadi3> "source plugin"?
<rcjsuen> onnadi3: something that includes the java source code of the binary jar that you distribute
<rcjsuen> lemmy: yes good question
<onnadi3> Hell yeah, I'd continue. This is my first shot at real fame und fortune :)
<rcjsuen> onnadi3: many students from the previous year, if you wi-- move on as we--, that is not an issue
<lemmy> onnadi3: the question aims at the "internal" documentation. if you're still around to answer questions, we don't need a thoroughly doc.
<lemmy> though it is desirable.
<onnadi3> Very desirable. You never know when I might get run over by a bus
<lemmy> lets hope not at all. ;o
<onnadi3> So I think we're good for the user docs. For the dev docs, are y'all fine with something like the TeX docs?
<lemmy> you mean something written in tex? i must confess, i don't know the tex documentation.
<onnadi3> Oh no no. I mean, the documentation of TeX
<lemmy> s/must/have to
<onnadi3> You'll need a dvi previewer to view it
<onnadi3> Basically, I'm just thinking of documentation as detailed as that so that someone can easily understand the source
<rcjsuen> if you can go a-- out, that wou-d be great
<lemmy> i like detailed. ;)
<onnadi3> Deal
<onnadi3> So that'll be all the documentation we need for this project right? Are we ready to move on to the next poin in the agenda?
<lemmy> what i usually miss the most in terms of project documentation, is the big picture and the major design.
<rcjsuen> onnadi3: i think so
<lemmy> i don't need a class that contains more javadoc than code.
<lemmy> yep, enough for the documentation. ;)
<lemmy> s/for the/with
<lemmy> the next topic i'd like to see going into the project doc. ;)
<lemmy> "Define some terms/Narrow down or extend the scope"
<lemmy> i think we should try to come up with a clear understanding of what a service can and cannot be.
<lemmy> this will most certainly influence the scope of the project.
<lemmy> i could imagine using the wiki page (where i already created a section for it) ;)
<lemmy> what is a service? what identifies a service...
<lemmy> is the term service even approriate...
<rcjsuen> maybe not
<lemmy> the current use cases lead to something that i won't really call a service.
<onnadi3> Well, a service can be anything that can be identified with URI...but for this Summer, my goal was only to write finders for services on the local machine
<rcjsuen> lemmy: you want jdk autodetection, i don't think one woud really call a java runtime a esrvice
<rcjsuen> service is something i shou-d be ab-e to restart through /etc/init.d
<rcjsuen> and whatever that thing in Win32 is
<lemmy> rcjsuen: or via the osgi console ;)
<lemmy> maybe we should do the use cases before we define the term?
<onnadi3> lemmy: perhaps. May we start with some from the proposal?
<lemmy> sure :)
<rcjsuen> markus: good idea
<onnadi3> BTW, rcjsuen, do you have access to a copy of the proposal?
<lemmy> should this be our homework assignment to write down the use cases on the wiki page? we could even ask other people to add theirs.
<rcjsuen> markus: yes
<onnadi3> Well, one case is like lemmy said, JDK, or gcc, or PERL detection
<rcjsuen> lemmy: you need to change your name to start with a key that i dont -ose ha-fway
<onnadi3> :-)
<lemmy> rcjsuen: maybe you should get yourself a new keyboard instead. ;)
<rcjsuen> it sounds -ike we are detecting binaries
<rcjsuen> nuh-uh! :(
<onnadi3> Well, the logic for detecting binaries is exactly the same needed to find a Webserver on port 80
<onnadi3> (well, kinna the same)
<lemmy> onnadi3: lets collect use cases until the next meeting. then we choose some of them which make the most sense and compile the deliverables out of it?
<onnadi3> lemmy: Could you please point me to the page you created?
<lemmy> until then i think we should postpone the remaining technical agenda items.
<onnadi3> Alrighty! So, on to the organizational items, eh?
<lemmy> rcjsuen: btw. i'll ask phillipe to grant you mentor rights in
<lemmy> onnadi3: unless you have something technical to add. :)
<onnadi3> lemmy: BTW, thanks for putting that page up
<onnadi3> lemmy: nope, I'm ready to get orgnanized :)
<lemmy> nah, don't mention it. that's what i'm here for.
<lemmy> ok, "weekly status meetings".
<lemmy> however, normally i prefer daily standup meetings, but this seems to be a problem timezone-wise.
<lemmy> at least for me. you two live in the same tz.
<onnadi3> oh we do?
<onnadi3> rcjsuen: where are you?
<onnadi3> *where do you live?
<rcjsuen> onnadi3: canada
<onnadi3> excellent
<lemmy> onnadi3: and he's normally on irc 24/7 ;)
<onnadi3> hehehe
<onnadi3> I think we should have one weekly meeting, any weekday except Friday
<lemmy> for the moment i'd suggest to use this timeslot for our weekly meetings?!
<onnadi3> ahh...
<lemmy> is it too early=
<lemmy> ?
<rcjsuen> ten am is fine with me
<onnadi3> Could we push it back an hour or so. This waking up on a Saturday thing...  :-D
<rcjsuen> considering i wake up before seven sometimes
<rcjsuen> yes, i just said i wake up before seven sometimes
<onnadi3> Even in the summer??
<rcjsuen> yes
<rcjsuen> rather, even on the weekends
<onnadi3> <cringes> you're strong :)
<lemmy> maybe we can move it to sunday then?
<rcjsuen> sunday is sti-- a weekend ;p
<lemmy> the nightclubs in india close around 1:30
<onnadi3> hahahahahhaa
<lemmy> then i'm fine with 11:00am EST/8:30pm IST.
<onnadi3> Alright. Saturdays, 11am EST/8:30pm IST starting from May 28?
<lemmy> Sundays, 11am EST/8:30pm IST
<rcjsuen> we are actua--y EDT, but okay ;p
<rcjsuen> if we are fo--owing -ast yr-s schedu-e
<onnadi3> Hmm, could we move it back to Saturday? 11am is kinna smack in the middle of church time
<onnadi3> on Sundays, that is
<rcjsuen> probab-y a week-y soc meeting on thursdays
<onnadi3> rcjsuen: I second that
<lemmy> rcjsuen: which time?
<rcjsuen> lemmy: last year the whole group met on 1200 EDT and, er
<rcjsuen> twenty-one hundred?
<lemmy> yep
<rcjsuen> Two meetings are held every Thursday:
<rcjsuen>    1. 0900 PDT - 1200 EDT - 1600 UTC
<rcjsuen>    2. 1600 PDT - 1900 EDT - 2300 UTC
<rcjsuen> newp, nineteen hundred
<rcjsuen> we had two to compensate time zone things
<rcjsuen> (and commitments, of course, work/school/wahtever)
<rcjsuen> dunno what is philippe's plan this yr
<rcjsuen> hello my L key!
<rcjsuen> oh nm its dead again ;(
<onnadi3> aww
<onnadi3> The Ls were nice :)
<lemmy> I won't make 2300 utc for sure.
<lemmy> 1600 will be hard too, considering that the day starts early in india. but i guess i don't have an option.
<onnadi3> So, we'll be meeting on Thursdays and Saturdays, eh?
<lemmy> rcjsuen: how long do those meetings usually last?
* rcjsuen coughs.
<rcjsuen> er, we--
<rcjsuen> we have doub-e the students this round ;p
<rcjsuen> sometimes they go over an hr
<lemmy> onnadi3: for saturday 10:30am EDT/8:00pm IST as a compromise? ;o
<rcjsuen> anyway, this is un-ike-y to be set in stone
<rcjsuen> since pom wou-d want to get a fee- for what students agree on this yr
<onnadi3> lemmy: sure. (their clubs must be *really* good ;) )
<lemmy> onnadi3: it's better than being home alone. ;)
<rcjsuen> lemmy: i'm home alone all the time
<lemmy> rcjsuen: you're still young.
<onnadi3> hahahahha
* lemmy doesn't want to die alone. ;)
<lemmy> so, saturdays 10:30am EDT/8:00pm IST it is?
<rcjsuen> fine by me
<onnadi3> fine by me
<onnadi3> And this is starting from May 28?
<lemmy> i don't mind if you have your breakfast while typing. ;)
<lemmy> onnadi3: that depends on you. if it were for me, we could start right away.
<onnadi3> lemmy: I'd love to start too but I'll be out of town three out of the coming four Saturdays
<lemmy> just the saturdays or the whole week?
<onnadi3> Just the weekends
<onnadi3> So, I *could* work and send you updates by e-mail or whenever I catch you on IRC
<rcjsuen> either would work
<lemmy> rcjsuen: i suppose we won't start with the regular thursday meetings before the official gsoc beginning?
<rcjsuen> un-ike-y
<rcjsuen> the fact that not many ppl are here means something ;)
<onnadi3> Cool, so I guess that's meeting schedules done with
<onnadi3> Next up: deliverables?
<lemmy> lets postpone it. currently everything is too vague to actually write it down.
<rcjsuen> yes
<lemmy> also for the milestones/road map
<rcjsuen> yeep
<onnadi3> On the topic of project housing, does Eclipse still use CVS for legacy reasons?
<lemmy> offers svn as well as cvs.
<rcjsuen> cvs works so we stick with cvs i spose
<lemmy> onnadi3: you're familiar with svn?
<onnadi3> Yup...and I love it
<onnadi3> So, if we could use it instead of cvs... ;)
<lemmy> I'm fine with svn too. If it is technically possible, we should you is. But first we need to talk about the license you want to choose for the code.
<lemmy> this is important if we can or cannot use
<lemmy> onnadi3: do you have a license model in mind?
<rcjsuen> There is also the issue of 3rd party libs
<rcjsuen> to factor into the equation, if any
<onnadi3> um...I'm a big fan of "Do as you damned well please, just don't give it the same name as mine"
<lemmy> rcjsuen: maybe you like to elaborate on this topic?
<onnadi3> Is there a license for that?
<rcjsuen> we--, licenses ilke those would probably be compatible with the ep
<rcjsuen> epl
<rcjsuen> onnadi3: for these super-lax licenses, you probaby want to -ook at mit or bsd
<rcjsuen> and
<onnadi3> And those could still be added to the Eclipse source??
<lemmy> onnadi3: if we want to see the code included in eclipse someday, the easiest would be to choose epl.
<lemmy> but there is also the possibility of cross-licensing
<rcjsuen> they can be committed to cvs but afaik, no one _works_ on the code that is under a different license at
<rcjsuen> like we distribute ant with eclipse, but of course, ant development is done by Apache
<onnadi3> ah. Then I probably want EPL.
<rcjsuen> yes, dual-tri-multi-licensing schemes work too, as lemmy points out
<rcjsuen> last yr i dual-ed mine
<onnadi3> what licenses didja use?
<rcjsuen> but when it came time to throw it on eclipse, i just removed the dual references
<rcjsuen> i used MIT/X11 with EPL
<rcjsuen> but yes, the easiest way out is to pick epl
<lemmy> just keep in mind that epl and gpl are incompatible.
<lemmy> it won't be possible to use gpl 3rd party libraries.
<onnadi3> alrighty
<lemmy> for drools i've checked already and it's apache license.
<lemmy> just in case we'll use it.
<onnadi3> lemmy: what is in the apache license?
<onnadi3> (and where did you pick up "for drools"? ;) )
<onnadi3> Sorry, I  meant what were you referring to when  you said "I've checked"?
<lemmy> drools is a rules engine which might get useful.
<lemmy> maybe it's overkill though
<onnadi3> oh...ah...I thought you were using it as a turn of phrase :)
<lemmy> hehe, no.
<onnadi3> Alright, so I guess its sorted for now: Eclipse license...unless we really need a library with a different license
<lemmy> personally i think epl makes sense since i see this code going into eclipse at some point.
<rcjsuen> yes, I think some of the projects will find it handy
<onnadi3> here here
<lemmy> if we agree on epl, we should get the paperwork rolling. i'll probably take a couple of weeks to get it done.
<onnadi3> Paperwork?? What do we need to do?
<rcjsuen> lemmy: paperwork for
<rcjsuen> ?
<lemmy> new committer?
<rcjsuen> lemmy: well, i guess ask pombred1/wayne to get the ball rolling
<lemmy> rcjsuen: i don't think philippe plans to do it in a batch.
<rcjsuen> we--, i did not mean -iterally
<ijuma> conan is the person to ask about drools btw
<ijuma> he's in #eclipse
<rcjsuen> batch per se in a way cuz we need to hand in the names when we recreate soc component
<ijuma> (if there are questions that is)
<lemmy> ijuma: great, good to know somebody personally. :-)
<ijuma> it's Mark Proctor btw
<ijuma> the lead developer
<lemmy> perfect
<onnadi3> Does new committer have anythign to do with the license we choose?
<ijuma> lemmy: yeah, irc is cool :)
<lemmy> _if_ ogechi chooses to use a rule engine after all. ;)
<ijuma> well, irc is still cool anyway ;)
<lemmy> onnadi3: indirectly...
<rcjsuen> It has to do with
<rcjsuen> "DO NOT commit non-EPLed code"
<rcjsuen> :P
<lemmy> onnadi3: to get a developer account at, you need to go through this new committer process.
<onnadi3> Ah, I got  it
<lemmy> using infrastructre makes only sense if you choose epl as a license.
<onnadi3> lemmy: Don't I have to "prove my mettle" by at least writing some code first? That way it'll feel more special :)
<lemmy> onnadi3: "normally" it is like that. you need to gain "meritocracy points" to be elected as a committer.
<lemmy> but for soc it is different.
<lemmy> this bug might make things clearer
<lemmy> rcjsuen: correct me if i'm wrong, you know far more about this.
<onnadi3> It does clear things up
<lemmy> in #eclipse we have our first use case i suppose. ;)
<onnadi3> in that case, I guess we've covered all possible ground today
<lemmy> and it only took use 1,5h. ;)
<rcjsuen> har
<rcjsuen> but yes, the idea wou-d have been
<onnadi3> We should probably try to meet up again to clear up the biz about deliverables etc.
<rcjsuen> keep contributing till you drop
<rcjsuen> but since it is a "new project
<rcjsuen> new project has an initial set of committers
<rcjsuen> so you guys will all be a subset of that set
<rcjsuen> the other subset would be the mentors
<lemmy> to wrap things up a litte...
<lemmy> we'll have two different docs. end-user doc in the eclipse isv format and the internal doc like the tex doc
<lemmy> until next week we'll write down use cases in the wiki
<lemmy> the next irc status meeting will be on may 28
<lemmy> project will be licensed under epl
<rcjsuen> kk
<lemmy> regular status meetings will be on saturdays 10:30am EDT/8:00pm IST
<onnadi3> So, I guess the conversation will continue asynchronously over the wiki...on the issue of use cases
<lemmy> also we'll have general soc status meetings for which the final timing is still TBA
<rcjsuen> yes
<onnadi3> Sounds like a plan y'all
<lemmy> onnadi3: you can add the wiki page to your watchlist. that way you'll receive emails once somebody modifies the page.
<rcjsuen> wow that is friggin annoying
<lemmy> one last thing. onnadi3 do you have a blog?
<onnadi3> I don't have a blog
<onnadi3> I thought the wiki was meant for updates on the status of the project etc.?
<lemmy> idea is to create a blog for the three of us which we use to blog about the project. (eclipse has a vibrant blogging scene)
<onnadi3> Can't that be on the wiki page? It would fit nicely there
<lemmy> it don't think it is technically possible to add a wiki page to the planet.
<lemmy> also we'd not use it for technical discussion, much rather for PR instead.
<lemmy> +but
<lemmy> it's just an idea though. i don't wanna talk you into it.l
<onnadi3> I'll see about that. I would like to put up general thoughts about the state of the project and all
<lemmy> in general feel free to stop me/us if we rush things. :)
<rcjsuen> :)
<onnadi3> No problem. Things are sauntering by for now so I think I can handle it :)
<lemmy> if you don't feel comfortable with something, just raise you voice.
<onnadi3> NO PROBLEM
<onnadi3> ;)
<rcjsuen> He probably has a problem with my l key problem.
<rcjsuen> Why speak of the devil here it is back online
<rcjsuen> maybe for more than thirty seconds this time
<lemmy> i think this is the most important point of this meeting. we mentors are meant to support you. we're not your boss.
<onnadi3> That's good to know. Remy, Markus, thanks a lot for all your help
<onnadi3> BTW, Remy, are you a he or a she?
<onnadi3> (if you don't mind)
<rcjsuen> np, -ooking forward to working with you in the coming months/weeks
<lemmy> although we have a say in terms of payment. ;p
<rcjsuen> I am a male. You can even get my mug shot here
<lemmy> wait a sec, let me find the brain pic...
<rcjsuen> Markus and I go waaaaaaaaay IRC ;P
<lemmy> ah next time, it's stored on the usb drive.
<onnadi3> :-)
<onnadi3> Alright y'all...I think I shall mosey of now. I've got to please my current employer :) But I'll put up use cases as soon as I get em
<rcjsuen> onnadi3: np, see you around
<lemmy> have a nice day/weekend
<onnadi3> bye bye

Back to the top