Camelia, the Perl 6 bug

IRC log for #cdk, 2010-04-28

| Channels | #cdk index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
04:29 egonw joined #cdk
05:01 sneumann joined #cdk
05:15 bag__ joined #cdk
05:39 carsten joined #cdk
05:54 jbrefort joined #cdk
06:39 Gpox joined #cdk
06:54 sneumann joined #cdk
07:17 ju_ joined #cdk
07:37 mgerlich joined #cdk
09:10 sneumann joined #cdk
10:25 egonw damn...
10:26 bag joined #cdk
11:33 egonw grmph...
11:46 egonw joined #cdk
12:35 egonw oh no... another listening bug
12:35 egonw it's a mine field
13:06 * stain is onto the git trend
13:12 egonw stain++
13:20 stain I'm not very sure yet what should count as 'a git repository' yet
13:20 stain what granularity do you use?
13:21 stain I used the git-svn thingie to get the existing history, but now I have 25 repositories
13:21 stain (from Taverna)
13:22 egonw :)
13:22 egonw each clone is a repository
13:22 egonw not all are public, though
13:22 stain yes.. but do I want to keep it that way?
13:23 stain we used svn:externals before
13:23 stain I looked at the git submodule support, and I'm still a bit confused as to what would be a valid approach
13:23 stain perhaps we should just keep the granularity like 'Taverna engine' and 'Taverna workbench'
13:26 egonw in bioclipse we have some 15-ish repositories
13:26 egonw we're not using submodules
13:26 egonw we just have them along side
13:26 egonw and aggregate them using the Eclipse workspace
13:26 egonw but since your principle compile environment is maven, you might indeed need to have a slightly different appraoch
13:27 egonw or perhaps just dir/ variables...
13:27 egonw like:
13:27 egonw taverna.engine.dir=../foo
13:31 jonalv joined #cdk
13:31 masak joined #cdk
13:31 egonw ok...
13:31 egonw here's the deal
13:31 egonw we have these interfaces:
13:31 egonw IChemObject, IChemObjectChangeNotifier, IElement
13:32 egonw now... on the impl side:
13:32 egonw Element extends ChemObject implements IElement
13:32 egonw IElement extends IChemObject
13:32 egonw ummm
13:32 egonw Element extends ChemObject implements IElement, IChemObjectChangeNotifier
13:32 egonw and, a second impl:
13:32 egonw NNElement extends ChemObject implements IElement, IChemObjectChangeNotifier
13:32 masak *nod*
13:32 egonw nope
13:33 egonw NNElement extends NNChemObject implements IElement
13:33 egonw so, in order to not duplicate the IElement implementation, I'd like to have AbstractElement
13:33 egonw and have something like:
13:33 egonw NNElement extends NNChemObject, AbstractElement implements IElement
13:34 egonw but I don't think I can get around source code duplication :(
13:34 masak which is impossible in Java.
13:34 egonw masak: indeed
13:34 masak can't have multiple extends.
13:34 egonw so, just copy/paste common functionality?
13:34 jonalv sounds like you should encapsulate
13:34 masak aye.
13:34 masak compose rather than inherit.
13:35 egonw yeah, so copy/paste
13:35 masak no.
13:35 jonalv egonw: no
13:35 masak well,
13:35 egonw the encapsulated would always be the same
13:35 masak you'll need to duplicate a few method declarations.
13:35 egonw the wrapping that is...
13:35 masak but not the code itself.
13:35 egonw right
13:35 masak delegation.
13:35 masak not ideal, but still much better than copy/paste.
13:35 masak jonalv++
13:35 egonw also, I'd copy/paste the full JavaDoc
13:36 egonw as {@inheritDoc} does not work :(
13:36 jonalv egonw: the javadoc is on the interface no?
13:36 egonw ah, excellent point!
13:36 egonw yes, I *can* use @inheritDoc
13:36 egonw ok, one less problem
13:36 jonalv yup
13:36 egonw no fancier solutions for Java?
13:37 jonalv egonw: there are lot's of frameworks that can generate this for you if you think that is fancier
13:37 jonalv but that is just a way to get it done without having to write it all
13:37 masak jonalv: s/lot's/lots/
13:37 jonalv the mechanics are still the same..
13:38 jonalv masak: I am tried to day
13:38 masak *nod*
13:38 * egonw does not like frameworks
13:38 egonw the more framework, the more pain
13:40 jonalv no I thikn you should just do it
13:40 jonalv :)
13:40 egonw jonalv, masak: http://gist.github.com/382148
13:40 egonw that's the code I have to copy/paste now
13:41 egonw into some 25 classes or so
13:41 masak hm.
13:41 jonalv yea hm indeed
13:41 jonalv 25 classes?
13:41 egonw ideas most welcome
13:41 masak can't you just put that code in a base class, and inherit from it?
13:41 egonw yeah, something like that
13:41 jonalv this is what you use Spring for...
13:41 egonw masak: nope, that's what I tried to explain
13:42 masak multiple parents, yes.
13:42 egonw masak: but you nicely pointed out multiple inheritance is impossible
13:42 masak thought you eliminated that, though.
13:42 masak apparently not.
13:42 egonw and there is other functionality to inherit
13:42 jonalv when you can't push aspects up the inheritance tree you eject them horizonally with AOP instead
13:42 egonw which is *far* *more* extensive
13:42 masak in Perl 6, this is what you use roles for.
13:43 * jonalv must admit that he didn't catch why you couldn't put it in a base class but he totally accepts that it can't be done
13:43 masak egonw: then I think copy/paste into 25 might be your best option.
13:43 egonw masak: yeah, think so too
13:43 jonalv egonw: or some AOP framework
13:43 egonw jonalv: because I need another class to be base class
13:43 masak ...which is really another kind of pain.
13:43 egonw masak: it is
13:44 jonalv it's always a tradeoff
13:44 masak aye.
13:44 egonw well, as long as it fixes the bug, I'm happy
13:45 masak egonw++ # pragmatic
13:45 jonalv egonw: the reason for why you need another class to be base class is not because you are programming against classes instead of interfaces at some level is it?
13:45 * jonalv is just checking...
13:46 egonw nope
13:47 jonalv okey too bad. (That would have been an easier fix...)
13:47 jonalv :)
14:00 egonw oh, nice... another bug
14:16 stain http://github.com/apenwarr/git-su​btree/blob/master/git-subtree.txt made it quite a lot easier
14:16 zarah stain's link is also http://tinyurl.com/y9eszaq
14:33 egonw damn
14:33 egonw I'm doing it all wrong
14:33 egonw well, not all...
14:33 egonw but too much
14:33 egonw more refactoring on the way
14:33 egonw crap
14:34 egonw stain: sounds interesting...
14:41 CIA-40 cdk: annulen * r15538 /jchempaint/trunk/ (build.xml libutil/html.jar src/util/HtmlExample.java): Added stub for help html generation (target generateHelp)
14:46 CIA-40 cdk: annulen * r15539 /jchempaint/trunk/build.xml: Fixed bug in processTemplates target - should remove .class file
15:00 masak left #cdk
15:29 carsten joined #cdk
16:22 CIA-40 cdk: annulen * r15540 /jchempaint/trunk/ (build.xml src/util/HtmlExample.java): Replaced HtmlExample with real jcp.html page
16:24 egonw joined #cdk
18:00 jonalv joined #cdk
18:07 jbrefort joined #cdk
20:04 bag_ joined #cdk
21:53 s9asad joined #cdk
22:05 s9asad joined #cdk
22:08 s9asad left #cdk

| Channels | #cdk index | Today | | Search | Google Search | Plain-Text | summary