I’m wondering if you guys can offer me some advice on code, style and politics.
I’ve asked a few times in the forum about where to go with ofxOpenNI. Back in March or April there was a brief contact with Diederick about merging our forks and I’ve PM’d him recently but haven’t received a response.
I’ve been putting a lot of work into this thing and it feels like a lot of people are using, or are at least looking at the code.
In the beginning - and so far - I’ve been fine with just hammering away at a fork. And really there is nothing wrong with this. But perhaps it’s a bit confusing for people (including me) and makes making any radical changes to the code trickier.
At first I was just on that cusp you get to with a language like c/c++ -> you’re starting to get the patterns and can clean them up; I got a bit better lately and working with a forked pattern that I don’t think handles the code/problem as well as it might (or at least how I’d like to
is getting more difficult.
So:
* Should I make a whole “new” addon (ie., change the name; stop supporting the fork)? [This goes against leaving a git history of the code - although obviously credit would be given where it is due - but it would allow for easier identification of ownership/responsibility for maintenance, as well as allowing an easier refactoring of the core code]
* If I don’t do that (and indeed even if I do), what’s the best way to make a radical change to code that’s already in use? -> on the one hand, yet another API for doing the same thing (get some depth pixels, make a mask, draw a cloud point, track some blobs, hands etc) is kind of annoying, but on the other hand making it all simpler is good isn’t it? Or is it not worth it if it breaks everyones code? [I could mark certain calls deprecated; and make sure that it’s possible to use the old ofxDepth/Image/etc/Generator style; but in some parts it’s still simply going to break - keep in mind that nothing that radical has happened in the OpenNI API -> I just know how to use it better now, whereas before I was learning by changing Roxlu/Halfdanj’s code]
* I guess it’s also tedious (perhaps it’s just ego?) to be constantly working on a fork; there’s a sense of ownership loss - which is mainly because it’s not a collaboration in the sense of an ongoing communication between me and Roxlu. That would be whole different story. In the end it is plain boring to be constantly posting: “have you tried my fork” or “my fork does x” -> maybe that’s just silly? But I feel that way often when posting about “my fork”…Sometimes I wonder whether this (indeed all code) comes down to ego; it simply doesn’t matter to the vast majority of users who wrote the code first, or who maintains it; but to a few people it does, including ones self, when you’re up at 4am recompiling and wrapping drivers so they’re portable and useable on any platform.
* Instead of all the above: Should I persist more strongly with merging our code?? I don’t know Diederick. I don’'t know if he’s just too busy to respond. Perhaps the fault is mine; I’ve certainly been busy on a lot of stuff: Ultimately I have not issued a pull request on his repository - not sure why, just a gut instinct (maybe a totally wrong one) that it wouldn’t happen.
In the end the question(s) is/are:
* Should I make a merge request and PM him some more?
* Keep on working on the fork in this ‘separate’ style -> perhaps continue adopting Roxlu’s naming scheme (I see he added an ofxONI class to make a ‘simpler’ interface to the context, generators etc?
* Make a new project and give credit to Roxlu/Halfdanj?
call it ofxSimpleOpenNIToo :
(groan)
* Worry less and just get on with coding ???