33 karma · joined January 28, 2008
for example.
package com.mycompany.lib
import org.someGPL.lib.A;
myClass B extends A {}
In this case you simply include the GPL lib as GPL and your Lib as any type of license
in your class B you can override functions you don't like and add more of your own functions.
Finally when you release your code you have to say that this code uses the following GPL code...
The best alternative would be managed private servers.
Another thing I've noticed is how features that have been around for a long time (web time), are slightly "modified" (most times more simplified, either for the good reason of simplification, or simply because of lack of technical experience, or in the worst case because of bad copying) many examples of this. but since you brought up dropbox, the first thing brings to my mind is box.net. again I'm not saying anything bad about it. I'm sure its better since I know about box.net and their not that great anyway. but my point is that there are not that many selections that are either new innovative products or an old idea that you could say wow this is how it should be implemented. say Google for example. And, they have common theme to them. no not from the perspective of the consumer or what the products are.
I really don't know about how yc views things but the theme of yc is clear. alteast to some degree. either because that's simply the result of their total work and it just produces this, or intention by design to move in this direction or both.
if you go to many vc's site and look under their portfolio many times you can find a common theme in their select.
but there should also be some set of rules, guidlines that everyone should know about to make the ban fair.
The bigger problem is location and if we'll be ready to move :)
I wonder why
on the QA I guess what I was trying to get to was to not let your developers rely too much on QA team to catch the errors.
the questions is, is he willing to wait and do some quick and dirty impletepemtions just to test the ideas and then do the real thing.
and the questions for you is how sure are you of you novel ideas? it could become costly because eventualy you will have to improve the quality or someone else like google might take it from you and develop it better
Also as a developer, I would apply some programming principles to project management. for example design-by-contract where you create interfaces that define interaction with a group of classes, etc. So you divide groups/people by function, ie UI, back-end, integration, etc. then each group would define what they need from the other groups and what they would be able to produce. you can then develop some process based on those requirements. I think the person doing integration with have the most input into this. he/she has to deal with static pages and at the same time with server side code. so its really an interface himself
Another thing I don't like about large groups is QA. I would not have them at all. perhaps one person that would give demo of the on going project to the clients. if he can give the demo without running to problem and the clients are happy with what they see then you have a QA.
one other note, create a sub group of a select few that really understand and have a good vision of the results. they should meet and review/audit everything and catch design errors before it becomes too late.
and finally don't manage things employees in a company. think in terms of a research project in a univercity. with lead developers as staff and everyone else as students. you can use you imagination as to how this would effect every aspect of your project.
PS: I've also worked on ATG in the past but now I'm working on tomcat and other open source.